利用node.js模块化写一个网页计算器
时间: 2024-09-06 08:01:26 浏览: 48
Node.js模块化设计允许我们将复杂的项目拆分为小而独立的部分,便于管理和复用。为了创建一个简单的网页计算器,我们可以利用Express框架来搭建web服务器,然后使用计算模块来进行数学运算。
首先,安装必要的依赖:
```bash
npm init -y
npm install express body-parser
```
接下来,创建一个`calculator.js`文件,作为计算模块:
```javascript
// calculator.js
module.exports = {
add: function(a, b) {
return a + b;
},
subtract: function(a, b) {
return a - b;
},
multiply: function(a, b) {
return a * b;
},
divide: function(a, b) {
if (b !== 0) {
return a / b;
} else {
throw new Error('Cannot divide by zero');
}
},
};
```
然后,在`server.js`中引入并使用这个模块,创建一个基本的HTML模板,以及处理POST请求的路由:
```javascript
// server.js
const express = require('express');
const bodyParser = require('body-parser');
const calcModule = require('./calculator');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
// HTML模板
const indexTemplate = `
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Simple Calculator</title>
</head>
<body>
<form action="/calculate" method="post">
<input type="number" name="num1" placeholder="Number 1">
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="number" name="num2" placeholder="Number 2">
<button type="submit">Calculate</button>
</form>
<div id="result"></div>
<script>
// JavaScript部分可以在这里添加,用于显示结果或错误提示
</script>
</body>
</html>
`;
// 处理POST请求
app.post('/calculate', async (req, res) => {
try {
const num1 = parseInt(req.body.num1);
const num2 = parseInt(req.body.num2);
const operator = req.body.operator;
const result = await calcModule[operator](num1, num2);
res.send(`Result: ${result}`);
} catch (error) {
res.status(500).send(error.message);
}
});
app.get('/', (req, res) => {
res.send(indexTemplate);
});
// 开启服务器
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
```
现在,启动`server.js`,在浏览器中访问`http://localhost:3000`,即可看到一个基本的计算器页面。用户输入数字和选择操作符后提交表单,就会触发后台的计算功能。
阅读全文