const express = require('express'); const bodyParser =require("body-parser"); const app = express(); //express ->app //NextHandleFunction =(req,res,next) =>{} app.use( bodyParser.urlencoded({ extended:false, }) ); app.use((req,res,next) =>{ console.log(1); req.body="123"; res.send("你好123") }); const port =3000; //请求 GET POST PUT DELETE app.get('/hello', (req, res) => { //res 响应 //req 请求 console.log(req.query); console.log(req.a); console.log(req.boby); console.log(req.params); console.log("我被请求到了"); res.send("你好"); });一行一行翻译
时间: 2023-05-31 15:07:45 浏览: 134
这是一个使用 Express 框架开发的应用程序,引入并使用了两个模块:express 和 body-parser。创建了一个 Express 应用程序(app)并声明了一个中间件函数(NextHandleFunction),使用了 bodyParser 中间件对请求体进行解析,打印输出了数字1,并将请求体数据设为字符串"123",然后响应客户端"你好123"。使用了端口号3000启动了服务程序。定义了一个路由处理程序,当请求路径为"/hello"时,打印输出了请求参数 req.query、请求属性 req.a、请求体内容 req.body、请求参数 req.params,并响应客户端"你好"。
相关问题
var express = require("express"); var app = express(); const BodyParser = require('body-parser') const sqlPromise = require("mysql2/promise");
这是在Node.js环境下使用Express框架、Body-Parser中间件和mysql2/promise库创建一个Web应用程序并访问MySQL数据库的语句。其中,var表示定义一个变量,const表示定义一个常量,express是一个Node.js的Web框架,BodyParser是一个Node.js中间件,用于解析HTTP请求的请求体,sqlPromise是一个Node.js库,它提供了一组API,用于创建MySQL数据库连接池,并支持Promise方式的异步操作。
这段代码的作用是初始化Express应用程序,并创建一个MySQL数据库连接池。具体来说,它使用var express = require("express"); var app = express();语句创建了一个名为app的Express应用程序实例;使用const BodyParser = require('body-parser')语句引入了Body-Parser中间件;使用const sqlPromise = require("mysql2/promise");语句引入了mysql2/promise库。
接下来,我们可以使用app.use()函数将BodyParser中间件挂载到应用程序实例上,以便在处理HTTP请求时使用。例如:
```
app.use(BodyParser.json());
app.use(BodyParser.urlencoded({ extended: true }));
```
以上代码将BodyParser中间件挂载到应用程序实例上,使其能够在处理HTTP请求时自动解析请求体,并将解析后的数据存储在req.body对象中。其中,BodyParser.json()用于解析JSON格式的请求体,BodyParser.urlencoded()用于解析URL编码格式的请求体。
接着,我们可以使用sqlPromise.createPool()函数创建一个MySQL数据库连接池,并指定连接MySQL所需的相关参数。例如:
```
const pool = sqlPromise.createPool({
host: 'localhost',
user: 'root',
password: '123456',
database: 'test'
});
```
以上代码创建了一个名为pool的MySQL数据库连接池,并指定了连接MySQL所需的相关参数,例如数据库服务器地址、用户名、密码、数据库名称等。
通过以上几步,我们就可以在应用程序中方便地访问和操作MySQL数据库了。例如,我们可以使用pool.query()函数执行SQL查询语句,如下所示:
```
const [rows, fields] = await pool.query('SELECT * FROM users WHERE age > ?', [18]);
```
这个代码片段使用await关键字异步执行SQL查询,并将查询结果保存在变量rows和fields中。通过这样的方式,我们可以使用Express框架、Body-Parser中间件和mysql2/promise库创建一个Web应用程序,并访问MySQL数据库。
<!DOCTYPE html> <html> <head> <title>Node.js Demo</title> </head> <body> <button onclick="addData()" class="addData">按钮一</button> <button onclick="getDataList()" class="DataList">按钮二</button> <div id="result"></div> <script type="text/javascript" src="jquery-3.7.0.js"></script> <!-- <script src="https://cdn.jsdelivr.net/npm/jquery"></script> --> <script> $(".addData").click(function () { var oAjax = $.ajax({ url: "http://127.0.0.1:3000/home", type: "post", success: function (data) { alert(data); } }) }) $(".DataList").click(function () { var oAjax = $.ajax({ url: "http://127.0.0.1:3000/home", type: "post", success: function (data) { var resultDiv = document.getElementById("result"); resultDiv.innerHTML = data; alert(data); } }) }) </script> </body> </html>const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.post("/addData", (req, res) => { res.send("添加成功"); }); app.post("/dataList", (req, res) => { var arr = []; var zhansan = { name: "张三", age: 19 }; var lisi = { name: "李四", age: 19 }; arr.push(zhansan); arr.push(lisi); res.send(JSON.stringify(arr)); }); const port = 3000; app.listen(port, () => { console.log(`服务器已启动,正在监听端口 ${port}`); }); // //设置一个路由--不使用模块化 // //语法:app.get("/自定义一个名字",callback) // //语法:app.post("/自定义一个名字",callback) app.post("/home",(req,res)=>{ // // req 请求---向服务器请求资源 // // res 响应--给前端发送数据 res.send("home页面") })没实现点击按钮
你在代码中存在一个问题,就是你的按钮点击事件绑定的是`addData()`和`getDataList()`函数,但是你的JavaScript代码中没有定义这两个函数。另外,你的接口路径应该是`/addData`和`/dataList`,而不是`/home`。
你可以尝试使用以下代码,它修复了上述问题:
```html
<!DOCTYPE html>
<html>
<head>
<title>Node.js Demo</title>
<script src="jquery-3.7.0.js"></script>
</head>
<body>
<button onclick="addData()" class="addData">按钮一</button>
<button onclick="getDataList()" class="DataList">按钮二</button>
<div id="result"></div>
<script>
function addData() {
$.post("/addData", function(data) {
alert(data);
});
}
function getDataList() {
$.post("/dataList", function(data) {
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = data;
alert(data);
});
}
</script>
</body>
</html>
```
另外,确保你在项目根目录下有一个名为`jquery-3.7.0.js`的文件,它将被用于引入jQuery库。如果没有该文件,可以从jQuery官网下载并保存到项目根目录下。
然后,确保你的Node.js服务器代码与之前提供的代码一致。
现在,当你在浏览器中访问页面并点击按钮时,应该能够正常调用接口并弹出相应的结果,或者将结果填充到页面中的`<div>`元素中。
阅读全文