类型错误:无法读取 Nodejs 中未定义的属性“post”

TypeError: Cannot read property 'post' of undefined in Nodejs

本文关键字:未定义 属性 post Nodejs 错误 读取 类型      更新时间:2023-09-26

我收到以下错误:

app.post('/api/assignments/user', createUser);
   ^
TypeError: Cannot read property 'post' of undefined
at Object.<anonymous> 
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at module.exports 
at Object.<anonymous> 

为此:

module.exports = function(app, userModel) {
"use strict";
app.post('/api/assignments/user', createUser);
app.get('/api/assignments/user', findUsers);
app.get('/api/assignments/user/:id', findUserById);
app.put('/api/assignments/user/:userId', updateUserById);
app.delete('/api/assignments/user/:userId', deleteUserById);
function createUser(req, res) {
    var newUser = userModel.createUser(req.body);
    res.json(newUser);
}
function findUsers(req, res) {
    if (req.query.username) {
        if (req.query.password) {
            findUserByCredentials(req, res);
        } else {
            findUserByUsername(req, res);
        }
    } else {
        var users = userModel.findAllUsers();
        res.json(users);
    }
}
function findUserById(req, res) {
    var userId = parseInt(req.params.id);
    var user = userModel.findUserById(userId);
    res.json(user);
}
function findUserByUsername(req, res) {
    var username = req.query.username;
    var user = userModel.findUserByUsername(username);
    res.json(user);
}
function findUserByCredentials(req, res) {
    var credentials = {
        username: req.query.username,
        password: req.query.password
    };
    var user = userModel.findUserByCredentials(credentials);
    res.json(user);
}
function updateUserById(req, res) {
    var userId = parseInt(req.params.id);
    var newUser = userModel.updateUser(userId, req.body);
    res.json(newUser);
}
function deleteUserById(req, res) {
    var userId = parseInt(req.params.id);
    userModel.deleteUser(userId);
    res.send(200);
}
}();

编辑:它正在从此文件调用:

module.exports = function (app) {
"use strict";
var userModel = require("./models/user.model.js");
var formModel = require("./models/form.model.js");
require("./services/user.service.server.js")(app, userModel);
require("./services/form.service.server.js")(app, formModel);
require("./services/field.service.server.js")(app, formModel);
};

我不明白为什么我要为此TypeError

你最后通过}()调用该函数function(app, userModel) {...。它什么也不返回。所以,你会undefined Module._compile.

开始使用"app"之前,您需要确保执行类似操作

var app = express();