我真的无法解决我的代码中的问题,我得到了错误。我错过了什么吗? 错误:发送后无法设置标头。 在ServerResponse.OutgoingMessage.setHeader(_http_outgoing.js:356:11)
var express = require('express')
var bodyParser = require('body-parser')
var cors = require('cors')
var users = require('./users.json')
app = module.exports= express()
app.use(bodyParser.json())
app.use(cors())
port = 3000
var corsOptions={
origin:'http://localhost:'+port
}
app.use(cors(corsOptions))
app.get('/api/users?',(req,res,next)=> {
var send;
if(req.query.language){
function itsTrue(value) {
return value.language===req.query.language
}
send=users.filter(itsTrue)
}
else {
send = users}
res.status(200).json(users)
next()
});
app.get('/api/users/:admin',function(req,res,next) {
var send;
if(req.params.admin){
function itsTrue(value) {
//console.log(typeof value.type);
return value.type===req.params.admin
}
send=users.filter(itsTrue)
}
else {
send = users
}
console.log(send);
res.status(200).json(users);
next()
})
app.get('/api/users/:id',function(req,res,next) {
var send;
var status;
for (var i = 0; i < users.length; i++) {
if(users[i].id == req.params.id){
send = users[i]
}
}
send?status=200:status=400
console.log(send);
res.status(status).json(send)
next()
})
app.listen(port,()=>{
console.log("hello from port "+port)
// console.log(users);
})
答案 0 :(得分:4)
您无法在next()
之后使用res.json()
。
当您致电res.json()
时,响应已由快递服务器发送。
var express = require('express')
var bodyParser = require('body-parser')
var cors = require('cors')
var users = require('./users.json')
app = module.exports= express()
app.use(bodyParser.json())
app.use(cors())
port = 3000
var corsOptions={
origin:'http://localhost:'+port
}
app.use(cors(corsOptions))
app.get('/api/users?',(req,res,next)=> {
var send;
if(req.query.language){
function itsTrue(value) {
return value.language===req.query.language
}
send=users.filter(itsTrue)
}
else {
send = users}
res.status(200).json(users)
next()
});
app.get('/api/users/:admin',function(req,res,next) {
var send;
if(req.params.admin){
function itsTrue(value) {
//console.log(typeof value.type);
return value.type===req.params.admin
}
send=users.filter(itsTrue)
}
else {
send = users
}
console.log(send);
return res.status(200).json(users);
})
app.get('/api/users/:id',function(req,res,next) {
var send;
var status;
for (var i = 0; i < users.length; i++) {
if(users[i].id == req.params.id){
send = users[i]
}
}
send?status=200:status=400
console.log(send);
return res.status(status).json(send)
})
app.listen(port,()=>{
console.log("hello from port "+port)
// console.log(users);
})