代码之家  ›  专栏  ›  技术社区  ›  AltBrian

错误:发送邮件后无法设置邮件头。在validateHeader(\u http_外向型。js:491:11)

  •  0
  • AltBrian  · 技术社区  · 6 年前

    我把一个小的待办事项列表应用程序在节点和我得到上面的错误。我还使用ejs作为模板。我的应用程序.js文件看起来像这样。

    const express = require("express");
    const bodyParser = require("body-parser");
     //const request = require('request');
    const date = require(__dirname + "/date.js")
    
    //console.log(date());
    const app = express();
    
    app.use(express.static("public"));
    
    const listItems = ['cooking', 'shopping', 'watch TV', 'go to the gym'];
    const workItems = []
    
    app.use(bodyParser.urlencoded({extended: true}));
    
    app.set("view engine", "ejs");
    
    app.get("/", function(req, res){
    
     const day = date.getDate();
    
     res.render("list", { listTitle: day, items: listItems });
    
     });
    
    app.post('/', function(req, res){
      //post items
     const item = req.body.newItem;
     if (req.body.list === "Work") {
      workItems.push(item)
      res.redirect("/work")
      } else {
     listItems.push(item);
     res.redirect("/")
     }
    
    //
     listItems.push(item);
     res.redirect("/")
    
    })
    
    app.get('/work', function(req, res){
    
    res.render("list", {listTitle: "Work List", items: workItems});
    
    });
    
    app.post('/work', function(req, res){
    //post items
     let item = req.body.newItem;
     workItems.push(item)
     res.redirect("/work")
     })
    
     app.listen(3000, function(){
     console.log("Server started on port 3000.");
     });
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   Chance    6 年前

    你的问题在这一部分,你正在打电话 res.redirect("/") 外部 ifelse 这就产生了错误,因为 res.redirect() 如果它是真的或假的,它将被调用,并且在这些条件之后不久它又被调用。发送后不能设置头。

    app.post('/', function(req, res){
    //post items
        const item = req.body.newItem;
        if (req.body.list === "Work") {
            workItems.push(item)
            res.redirect("/work")
        } else {
            listItems.push(item);
            res.redirect("/")
        }//
        listItems.push(item);
        res.redirect("/")
    })
    

    您必须检查您的逻辑,或者在这段代码中使用switch。

    推荐文章