app.get('/', function (req, res) {
mongoose.connect('mongodb://localhost/todo-list')
Todo.find({completed: false}, function (err, todos) {
if (err) throw err
res.render('homepage', {
allTodos: todos
})
mongoose.disconnect()
})
})
//
app.post('/create', function (req, res) {
// console.log(req.body)
// res.send(req.body)
todosController.create(req, res)
})
app.get('/listall', function (req, res) {
res.redirect('/listall')
todosController.list(req, res)
})
// and below is my controller
function list (req, res) {
if (!mongoose.connection.db) mongoose.connect('mongodb://localhost/todo-list')
Todo.find({}, function (err, todos) {
if (err) throw err
res.render('listall', {
allTodos: todos
})
mongoose.disconnect()
})
}
有人可以告诉我如何修复这个>。< 快递显示错误“发送后无法设置标题。” 在ServerResponse.setHeader(_http_outgoing.js:371:11)
答案 0 :(得分:1)
问题来自于尝试向用户发送两次请求(通过渲染和重定向),此处:
Intent intent = new Intent(this, BaseActivity.class);
intent.putExtra("branch", branchLink);
intent.putExtra("branch_force_new_session",true);
pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
您将用户重定向到listall视图,但之后您正在调用list方法,该方法尝试在此处呈现另一个页面:
app.get('/listall', function (req, res) {
res.redirect('/listall')
todosController.list(req, res)
})
您必须决定,如果您想将用户重定向到页面,或将其呈现给他,并删除其中一个。
答案 1 :(得分:0)
你只需删除这一行,你的/ listall路由应该有效:
res.redirect('/listall')
答案 2 :(得分:0)
您的函数todosController.list(req, res)
似乎也有res.send / res.redirect ...方法。但是,如果有其他资源,您只能发送一次响应。请求流中的方法会出现此错误。
您可以从todosController.list方法重定向用户,并将其从此处移除app.get('/listall', function (req, res) {
res.redirect('/listall')
todosController.list(req, res)
})
但请注意不要发送res。不止一次在一个单一的要求。流动。