[英]Node.JS undefined is not a function on required module
我正在嘗試使用創建的名為user.js的類。 該用戶的代碼是:
function User(){};
User.prototype.addUser = function(){
//Do stuff
return 0;
};
module.exports = User;
我將其包含在index.js路由文件中,如下所示:
var config = require('../lib/config');
var db = require('../lib/db');
var User = require('../lib/user');
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
/* GET create user. */
router.get('/newuser', function(req, res, next) {
*****var newuser = User.addUser();*****
res.render('index', {
user: newuser
});
});
module.exports = router;
但是,當我訪問localhost / newuser時,出現以下錯誤: TypeError: undefined is not a function
。 我在上面用5個星號標記的行上的index.js中引發了此錯誤。
您正在定義一個名為User()
的構造函數並導出它。 但是,然后當您require('../lib/user')
,便獲得了構造函數,但您從未使用它構造新對象,因此實際上並沒有類型為User
的對象,而只有構造函數因此,構造函數上沒有方法addUser()
。
代替這個:
var User = require('../lib/user');
您可以這樣調用構造函數:
var u = require('../lib/user');
var User = new u();
或者,如果您永遠不需要制造另一個,則可以一行完成全部操作:
var User = new (require('../lib/user'))();
另一種方法是更改您的User.js類以在這些行上返回某些內容...
function User(){};
User.prototype.addUser = function(){
//Do stuff
return 0;
};
module.exports = new User();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.