【问题标题】:Node.js / Express with module.exports and prototypeNode.js / Express 与 module.exports 和原型
【发布时间】:2016-12-09 04:08:28
【问题描述】:

当我在使用 module.exports 导出对象后尝试从对象原型访问函数时,我得到:

TypeError: 无法读取未定义的属性 'auth'

看起来 A.prototype.auth 没有通过 module.exports 传递,但是为什么呢?

Server.js

'use strict';

var express = require('express');
var app = express();
var bodyParser = require('body-parser');

var AReq = require('./src/apiCall');
var A = AReq("a", "b");

var serverPort = 3000; // Server port
var __apipath = "/api/v1/"; // API path

app.use(bodyParser.json());

// Authentication API route
app.get(__apipath + "auth", function (req, res) {
    return A.Auth;
})

// Server listener setup
app.listen(serverPort, function () {
    console.log('Server has been started on port ' + serverPort);
});

module.exports = app;

/src/apiCall.js

'use strict';

function A(login, password) {
    var options_auth = {
        user: login,
        password: password
    };
}

A.prototype.auth = function () {
    return "test";
};

module.exports = A;

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    需要新建一个apiCall.js实例,更改

    var AReq = require('./src/apiCall');
    var A = AReq("a", "b");
    

    var AReq = require('./src/apiCall');
    var A = new AReq("a", "b");
    

    【讨论】:

    • 这是我的错...谢谢
    猜你喜欢
    • 2015-07-03
    • 2013-08-08
    • 2017-03-10
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多