router.post无法传递数据

时间:2019-05-30 07:13:18

标签: javascript node.js http-post

$.post($gameNetwork._serverURL+'/addfriend', 
{username:"r",tusername:"w"}).done(function (data) {
console.log("finished");
 });



Account.statics.

    friend = function(name,tname,cb) {

        return this.findOneAndUpdate(

        { 'username':  name },

        { $push: {'friendlist': tname}},


        { upsert: true, new: true}, 

        cb);

    };

路线

router.post('/addfriend',  function(req, res) {

//Account.findByName(req.body.username, function(err, account){
    Account.friend(req.body.username,req.body.tusername, function(err, account){
 if (err) {
      return res.status(203).json({
        err: err.msg
      });}
    if (!account) {
      return res.status(203).json({
        err: "Invalid username"
      });}
        var tname = req.body.tusername;

    var profile = {
        tname : tname,
      name: account.username,
      email: account.email,
      id: account._id,
      rank: account.rank
    };  });

此代码应在Mongodb的“朋友列表”字段中输入“ w”,但我得到的是空而不是w。

如何在Mongodb中将“ w”添加到“朋友列表”字段中。 任何帮助表示赞赏 预先感谢

2 个答案:

答案 0 :(得分:0)

您可以像这样调试请求数据:

router.post('/addfriend',  function(req, res) {
    console.log(req.body);
    // your logic
}

再次运行代码,您将看到所需的数据。如果看到 tusername = null或未定义,则可能是配置所用模块时遇到的问题,例如 body-parser busboy 。 ..vv

欢迎所有评论!

答案 1 :(得分:-1)

router在ExpressJS router中?

如果是,您是否设置了bodyParser中间件?

如果没有,请这样设置

const express = require('express')
const bodyParser = require('body-parser')

const app = express()

// parse application/json
app.use(bodyParser.json())

您也可以尝试像描述here

一样在ajax请求中对正文进行字符串化处理