node.js:我的 RESTAPI 中的 POST 方法不起作用
node.js: The POST method in my RESTAPI does not work
我开始学习 Node.js 和 Express.js,我正在尝试创建一个简单的 API 来列出 JSON 文件中的数据(使用 GET 方法)和使用 POST 方法添加新用户。
GET 方法工作正常,但 POST 方法不起作用
当我请求 http://127.0.0.1:8080/listusers
时,API 将所有用户发送到 JSON 文件中。
当我请求 http://127.0.0.1:8080/adduser
时,API 必须添加新的用户信息并将新数据发送回浏览器。
NOTE: I read all the questions on Whosebug about this problem but
non of them help me so I have to ask again.
问题是当我请求时 http://127.0.0.1:8080/adduser
我收到以下错误
Cannot GET /adduser
这里是 server.js
:
var express = require('express');
var app = express();
var fs = require('fs');
var user = {
"user4" : {
"name" : "mounir",
"password" : "password4",
"profession" : "teacher",
"id": 4
}
};
app.post('/adduser', function (req, res) {
// First read existing users.
fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
data = JSON.parse( data );
data["user4"] = user["user4"];
console.log( data );
res.end(JSON.stringify(data) );
});
});
app.get('/listusers', function (req, res) {
fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
console.log(data);
res.end(data);
});
});
var server = app.listen(8080, function () {
var host = server.address().address;
var port = server.address().port;
console.log("listening at http://%s:%s", "0.0.0.0", port)
});
答案在错误中。无法获取 /adduser。关键字获取!如果您发出 post 请求,请确保包含适当的 headers 并且您发出的 POST 请求带有 body,而不是 GET 请求。例如,如果您使用的是 fetch:
const myInit = {
method: 'POST',
headers: myHeaders,
body: {
...
}
};
fetch("http://127.0.0.1:8080/adduser", myInit)
.then(res => {
...
});
我开始学习 Node.js 和 Express.js,我正在尝试创建一个简单的 API 来列出 JSON 文件中的数据(使用 GET 方法)和使用 POST 方法添加新用户。
GET 方法工作正常,但 POST 方法不起作用
当我请求 http://127.0.0.1:8080/listusers
时,API 将所有用户发送到 JSON 文件中。
当我请求 http://127.0.0.1:8080/adduser
时,API 必须添加新的用户信息并将新数据发送回浏览器。
NOTE: I read all the questions on Whosebug about this problem but non of them help me so I have to ask again.
问题是当我请求时 http://127.0.0.1:8080/adduser
我收到以下错误
Cannot GET /adduser
这里是 server.js
:
var express = require('express');
var app = express();
var fs = require('fs');
var user = {
"user4" : {
"name" : "mounir",
"password" : "password4",
"profession" : "teacher",
"id": 4
}
};
app.post('/adduser', function (req, res) {
// First read existing users.
fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
data = JSON.parse( data );
data["user4"] = user["user4"];
console.log( data );
res.end(JSON.stringify(data) );
});
});
app.get('/listusers', function (req, res) {
fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
console.log(data);
res.end(data);
});
});
var server = app.listen(8080, function () {
var host = server.address().address;
var port = server.address().port;
console.log("listening at http://%s:%s", "0.0.0.0", port)
});
答案在错误中。无法获取 /adduser。关键字获取!如果您发出 post 请求,请确保包含适当的 headers 并且您发出的 POST 请求带有 body,而不是 GET 请求。例如,如果您使用的是 fetch:
const myInit = {
method: 'POST',
headers: myHeaders,
body: {
...
}
};
fetch("http://127.0.0.1:8080/adduser", myInit)
.then(res => {
...
});