快递寄出后收不到
express can't get after posting
本文关键字:快递 更新时间:2023-09-26
我正在用Vue.js和Express和MongoDB编写web应用程序。Express服务器有两个Vue客户端将使用的路由:POST:/POST;得到:/后;第一个是发布帖子,另一个是获取帖子;
当我发布一个帖子(client beg post/post);文章发布成功,然后客户端转到第一页获取文章(客户端请求get/post),但是服务器错误:' Can't set header after they are sent. '’,我必须重新启动服务器,然后一切正常,刚刚发布的帖子显示正常。
我试了很多方法,但还是解决不了,我需要你的帮助。
the/post router of express:
var express = require('express');
var router = express.Router();
var Post = require('../models/post');
var moment = require('moment');
var jwt = require("jwt-simple");
router.get('/',function(req,res,next){
Post.get(function(err,posts){
if(err){
res.status(404);
res.end();
}
res.status(200);
res.json({
posts:posts
});
});
});
router.post('/',function(req,res,next){
var token = req.body.access_token;
if(token){
try{
var decoded = jwt.decode(token,req.app.get('jwtTokenSecret'));
if(decoded.exp < Date.now()){
console.log("haha")
res.end('token expired',401);
}
//console.log(decoded)
var newPost = new Post({
name:decoded.iss,
title:req.body.title,
content:req.body.content
});
console.log(newPost);
newPost.save(function(err,post){
if(err){
console.log("publish failed");
res.status(500);
res.send({error:1});
}
console.log('publish done');
});
res.status(200);
res.send({});
} catch(err){
res.status(401);
res.send('no token');
}
}
});
module.exports = router;
把你的路由改为do
router.get('/',function(req,res,next){
Post.get(function(err,posts){
if(err){
res.status(404);
res.end();
} else {
res.status(200);
res.json({
posts:posts
});
}
});
});
router.post('/', function(req, res, next) {
var token = req.body.access_token;
if (token) {
var decoded = jwt.decode(token, req.app.get('jwtTokenSecret'));
if (decoded.exp < Date.now()) {
console.log("haha")
res.end('token expired', 401);
} else {
var newPost = new Post({
name: decoded.iss,
title: req.body.title,
content: req.body.content
});
newPost.save(function(err, post) {
if (err) {
console.log("publish failed");
res.status(500);
res.send({error: 1});
} else {
res.status(200);
res.send({});
}
});
}
} else {
res.status(401);
res.send('no token');
}
});
module.exports = router;
或在error子句中返回,否则将尝试设置两次status
标头,最后一次是在生成输出后。
相关文章:
- 使用Router()参数进行快递
- 快递.js无法获取我的 CSS 文件
- 快递.js - 如何检查标头是否已发送
- 如何在快递中制作中间件的动态链.js
- 快递之间的区别.路由器() vs 多个 express() 对象
- 快递.js开机自检空要求正文
- 使用没有翡翠的快递时的潜在问题
- 如何在快递中抛出 404 错误.js
- 节点.js / 续集.js / 快递.js - 如何插入多对多关联?(同步/异步?
- Node.js快递网站可在线访问
- 快递邮件请求获胜'无法获取数据
- 快递中的客户端 DEL 请求.js
- 快递:我无法获得Passport来验证登录.注册正在进行,但您可以帮助护照登录验证吗
- 无法使用快递和猫鼬进行路由,请继续获取"类型错误:req.params.user不是函数;
- 快递邮件接收json不是我发送的
- 奇怪的动态中间件行为与快递 4.
- 使用小胡子.js部分与快递
- 如何将快递.js请求直接重定向到 404
- 快递用户认证中间件,应该做多少
- 快递 socket.io 在 websocket 上出现错误 404