javascript - 类型错误:require(...) 不是一个函数

标签 javascript node.js module export typeerror

我收到以下错误:

var userModel = require("./models/user.model.js")();
                                                 ^

TypeError: require(...) is not a function
at module.exports 
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 Function.Module.runMain (module.js:467:10)
at startup (node.js:136:18)

当我尝试需要 2个文件时,使用以下代码:

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);
};

我是新手,无法理解这个问题。有人可以向我解释一下并帮助我找到解决方案吗?

编辑:添加 user.services.server.js:

module.exports = function(app, userModel) {
"use strict";

app.post('/api/assignment/user', createUser);
app.get('/api/assignment/user', findUsers);
app.get('/api/assignment/user/:id', findUserById);
app.put("/api/assignment/user/:userId", updateUserById);
app.delete("/api/assignment/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);
}

}();

最佳答案

这是因为您在 require 末尾添加了 ()。删除它们。

关于javascript - 类型错误:require(...) 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36107211/

相关文章:

javascript - 如何使用 Angular Http 拦截器和 RxJS 刷新 JWT token ?

c - 如何从下载的 Linux 源代码编译模块?

javascript - 为什么 react.js 不能识别自己的 node.js 模块?

javascript - 用 .replaceWith() 替换按钮文本

javascript - jasmine 测试将 x、y 单击坐标设置为文本框的函数

javascript - 如何将上下文传播到路由器组件。 react 堆

javascript - 解析html字符串并删除一些元素

node.js - 使用带有对称 key 加密的 unload 命令解密卸载的 s3 文件

node.js - NodeJS : Parsing csv and returning the list through a promise

linux - $HOME/node_modules 中未安装 NodeJs npm WARN 卸载