我在node.js中写了这个简单的登录代码:
var express = require ("express");
var badyparser = require ("body-parser");
var app = express();
app.use(express.static(__dirname + "/static"));
app.use(badyparser());
var users = {
tom : "1",
jenny : "12",
mary : "123"
};
app.get("/" , function(req,resp,next){
resp.sendFile(__dirname + "/static/home.html")
});
app.post("/login" , function(req , resp , next){
// console.log(req.body); // print in terminal
// console.log(users);
for (user in users) {
if (req.body['username'] == user){
if (req.body['password'] == users[user]){
resp.json({status : "true" , msg : "YES"});
console.log("YES");
}
else {
resp.json({status : "false" , msg : "password is false"});
console.log("password is false");
}
}
else {
resp.json({status : "false" , msg : "user not found"});
console.log("user not found");
}
}
} );
app.listen(8000);
console.log("port open");
在浏览器页面显示正确答案但在终端显示此错误:
错误:发送后无法设置标头 . 在ServersResponse.header的ServerResponse.setHeader(_http_outgoing.js:501:3)的validateHeader(_http_outgoing.js:494:11)处(/Users/mohammad/Desktop/test/Login/node_modules/express/lib/response.js: 767:10)在ServerResponse.send上的ServerResponse.send(/Users/mohammad/Desktop/test/Login/node_modules/express/lib/response.js:170:12)(/ Users / mohammad / Desktop / test / Login / node_modules / express / lib / response.js:267:15)在/Users/mohammad/Desktop/test/Login/server.js:36:8在Layer.handle [as handle_request](/ Users / mohammad / Desktop / test /Login/node_modules/express/lib/router/layer.js:95:5)下一步(/Users/mohammad/Desktop/test/Login/node_modules/express/lib/router/route.js:137:13)at at在Layer.handle上的Route.dispatch(/Users/mohammad/Desktop/test/Login/node_modules/express/lib/router/route.js:112:3)[as handle_request](/ Users / mohammad / Desktop / test / Login /node_modules/express/lib/router/layer.js:95:5)
(我是节点中的新人)谢谢