router.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",但我得到了 null 而不是 w。

我怎样才能在Mongodb中将"w"放入"朋友列表"字段中。任何帮助不胜感激提前致谢

在 ExpressJS routerrouter

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

如果没有,请像这样设置

const express = require('express')
const bodyParser = require('body-parser')
const app = express()
// parse application/json
app.use(bodyParser.json())

您也可以尝试在 ajax 请求中字符串化正文,如此处所述

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

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

再次运行代码,可以看到所需的数据。如果您看到 tusername = null 或未定义,可能是您使用的模块配置存在问题,例如正文解析器busboy...节

欢迎所有评论!

最新更新