javascript - 求助,难了我好几天了。 Can't set headers after they are sent.
本文介绍了javascript - 求助,难了我好几天了。 Can't set headers after they are sent.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
app.js
var express = require('express');
var path = require('path');
var config = require("./config");// 处理配置文件
var session = require("express-session");// 处理session cookie
var MongoStore = require('connect-mongo')(session);// 将session存到mongoDB
var formidable = require("express-formidable");// 解析提交内容
var postRoutes = require("./router/postRoutes");
var apiRoutes = require("./router/apiRoutes");
var app = express();
app.set(express.static(path.join(__dirname,"/public")));
app.set("views",path.join(__dirname,"/public"));
app.set("view engine","ejs");
// 中间件session
app.use(session({
name:config.session.key,
secret:config.session.secret,
cookie:{
maxAge:config.session.maxAge
},
store:new MongoStore({
url:config.mongodb
})
}));
// 中间件formidable解析form提交
app.use(formidable({
uploadDir:path.join(__dirname,"public/avatar"),// 头像路径
keepExtensions:true// 保留后缀
}));
app.use("/post",postRoutes);
app.use('/api',apiRoutes);
app.listen(3000,function(){
console.log("listen on port 3000 ******************");
})
postRouter
var express = require('express');
var path = require("path");
var sha1 = require('sha1');
var postModel = require('../model/db').postModel;
var groupModel = require('../model/db').groupModel;
var moment = require('moment');
var marked = require('marked');
var postRoutes = express.Router();
var Err = 0;
var OK = 1;
// 主页
postRoutes.get('/posts',function(req,res){
postModel.find({},function(err,posts){
if (err) {
res.json({'style':Err});
return;
}
res.json({'style':OK,"posts":posts});
console.log('/posts');
// return;
});
});
apiRouter
var express = require('express');
var userModel = require('../model/db').userModel;
var groupModel = require('../model/db').groupModel;
var apiRoutes = express.Router();
const Err = 0;
const OK = 1;
apiRoutes.get('/userInfo',function(req,res){
userModel.findOne({name:'哈哈'},function(err,user){
res.json({
'style': OK,
'user':user
})
console.log('/userInfo');
})
});
module.exports = apiRoutes;
不是永远报错,是有时会报这个错误。我删的就剩这两个了,还是会报错;
错误的意思我知道,return 的位置写错了么?
请教应该怎么写?
出现好几天了,我试了很多方法,求一语道破。
解决方案
问题解决了!
var formidable = require("express-formidable");// 解析提交内容
这个插件抽风,换成bodyparser来解析就没问题了,谢谢各位了。
这篇关于javascript - 求助,难了我好几天了。 Can't set headers after they are sent.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文