Javascript 如何使用NodeJS重定向?

Javascript 如何使用NodeJS重定向?,javascript,node.js,forms,redirect,express,Javascript,Node.js,Forms,Redirect,Express,提交表单后,我试图将页面重定向到我的主页(使用路径“/search”)。在我的submit.html文件中,我有一个表单,当按下提交按钮时,表单中的数据通过“/submit”post方法提交。在我的index.js文件中,我有一个“/submit”的get和post函数,这样我就可以访问MongaDB和集合。以下是功能: //getting info from the database router.get('/submit', function(req, res) { //RETURN JSO

提交表单后,我试图将页面重定向到我的主页(使用路径“/search”)。在我的
submit.html
文件中,我有一个表单,当按下提交按钮时,表单中的数据通过“/submit”post方法提交。在我的
index.js
文件中,我有一个“/submit”的get和post函数,这样我就可以访问MongaDB和集合。以下是功能:

//getting info from the database
router.get('/submit', function(req, res) { //RETURN JSON OF INTINERARIES
   var db = req.db; //Creates a variable called db, which equals the database called db (db holds the collegelist collection)
   var collection = db.get('collegelist'); //Creates a variable called collection which accesses the collection called collegelist
});

router.post('/submit', function(req, res){
  var url = 'mongodb://localhost:27017/maptest'; //IDENTIFIES THE MONGO DB
  //var url = 'mongodb://dbuser2:sillydoo@ds059195.mlab.com:59195/heroku_vmz14q76';

  function insertDocument(db, record, callback) {  //this creates a function to insert data into collegelist
     db.collection('collegelist').insertOne(record,
     function(err, result) {

      assert.equal(err, null); //error must equal null
      console.log("Function for inserting a document.");

      callback(result); //calling back on the result?
    });
  };

  //this grabs the data from the form using ids and assigns it to the parameters in the collegelist database
  req.body['name'] = req.body.name; //INSERTING THE EMAIL INTO THE FIELDS THAT ARE COLLECTED

   //connects to the mongodatabase (the variable url equals the database -- either mongolab or local)
   MongoClient.connect(url, function(err, db) { //MONGO CLIENT IS CONNECTING TO THE URL -- TWO POSSIBLE OUTCOMES: ERROR OR THE DB
    assert.equal(null, err); //ERROR MUST BE NULL FOR THE PROGRAM TO CONTINUE
    insertDocument(db, req.body, function(result) { //this calls on the insert document function I just created
      //RECORD IS CALLED REQ.BODY IN THE LINE ABOVE
        db.close(); //CLOSE CONNECTION WITH THE DB
        console.log("DB Result :", result); //LOGGING IT!
        //ALL THE CODE IN THIS ANNONYMOUS FUNCTION IS THE CALLBACK IN THE INSERTDOCUMENT FUNCTION
        res.send('');
    });
})

res.redirect('/search');
//res.render('search', { username: req.user.givenName });

});
在函数的末尾,我尝试调用
res.redirect('/search')
返回错误:error:发送邮件后无法设置邮件头。经过研究,我意识到这个错误的发生是因为我处于身体或完成状态。但是,我无法确定需要编写什么来将页面重定向到我的“/search”路径,或者在哪里可以编写
res.redirect(“/search”)
,这样它就不会返回此错误

非常感谢您的帮助!提前谢谢你

,您不能发送多个响应

在这里,删除
res.send
,如果不需要

,则不能发送多个响应


在这里,如果不需要,请删除res.send,这是因为您要发送两次响应。 一个

底部有一个

res.redirect('/search');  

删除
res.send
,您就会没事了。始终确保只发送一次响应

这是因为您发送了两次响应。 一个

底部有一个

res.redirect('/search');  
删除
res.send
,您就会没事了。始终确保只发送一次响应

替换
res.send(“”)res.redirect('/search')在
insertDocument
回调中的code>。如果您不想在DB stuff完成时等待,那么只需删除
res.send(“”)

替换
res.send(“”)res.redirect('/search')在
insertDocument
回调中的code>。如果您不想在DB stuff完成时等待,那么只需删除
res.send(“”)