【问题标题】:TypeError: Cannot read property 'username' of undefined--类型错误:无法读取未定义的属性“用户名”--
【发布时间】:2021-02-21 14:40:37
【问题描述】:

var express = require("express");
var app = express();
var morgan = require("morgan");
var mongoose = require("mongoose");
port = 8000;
var User = require("./app/models/user");
mongoose.connect("mongodb://localhost:27017/tutorial", function (err) {
  if (err) {
    console.log("Disconnected: " + err);
  } else {
    console.log("connected");
  }
});
app.post("/users", function (req, res) {
  var user = new User();
  user.username = req.body.username;
  user.email = req.body.email;
  user.password = req.body.password;
  user.save();
  res.send("user created");
});
app.use(morgan("dev"));
app.listen(port, function () {
  console.log("You are listen on port " + port);
});
TypeError:无法读取未定义的属性“用户名” 在 D:\MEAN\server.js:16:28 在 Layer.handle [as handle_request] (D:\MEAN\node_modules\express\lib\router\layer.js:95:5) 在下一个 (D:\MEAN\node_modules\express\lib\router\route.js:137:13) 在 Route.dispatch (D:\MEAN\node_modules\express\lib\router\route.js:112:3) 在 Layer.handle [as handle_request] (D:\MEAN\node_modules\express\lib\router\layer.js:95:5) 在 D:\MEAN\node_modules\express\lib\router\index.js:281:22 在 Function.process_params (D:\MEAN\node_modules\express\lib\router\index.js:335:12) 在下一个 (D:\MEAN\node_modules\express\lib\router\index.js:275:10) 在 expressInit (D:\MEAN\node_modules\express\lib\middleware\init.js:40:5) 在 Layer.handle [as handle_request] (D:\MEAN\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (D:\MEAN\node_modules\express\lib\router\index.js:317:13) 在 D:\MEAN\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (D:\MEAN\node_modules\express\lib\router\index.js:335:12) 在下一个 (D:\MEAN\node_modules\express\lib\router\index.js:275:10) 在查询 (D:\MEAN\node_modules\express\lib\middleware\query.js:45:5) 在 Layer.handle [as handle_request] (D:\MEAN\node_modules\express\lib\router\layer.js:95:5)

【问题讨论】:

    标签: javascript mongodb express mongoose


    【解决方案1】:

    如果您的 post 请求像我认为的那样以 json 格式出现,您将需要以某种方式解析请求的正文。您可以通过要求“body-parser”并使用它的 json 方法来做到这一点,如下所示:

    const bodyParser = require('body-parser');
    const app = require('express')();
    app.use(bodyParser.json());
    

    我们所说的app.use(bodyParser.json()) 是对每条路由使用该正文解析器。

    【讨论】:

      【解决方案2】:

      包含一个使用 express 方法获取请求正文的代码 express.json,该方法在后台使用正文解析器模块 例如

      这应该可行


      app.use(express.json())

      【讨论】:

        猜你喜欢
        • 2021-08-29
        • 1970-01-01
        • 1970-01-01
        • 2018-03-31
        • 1970-01-01
        • 2018-04-29
        • 1970-01-01
        • 2020-05-25
        • 1970-01-01
        相关资源
        最近更新 更多