2017-09-22 131 views
0

你好我寫了下面的代碼,對象不是構造節點JS

**mysql-model.js** 
var mysqlModel = require('mysql-model'); 

var model = function(){ 
var MyAppModel = mysqlModel.createConnection({ 
    host      : 'localhost', 
    user      : "root", 
    password     : "", 
    database     : "test", 
}); 
return MyAppModel; 
} 
module.exports = model; 

**leave.js** 

var dbConnectionCreator = require('../utilities/mysqlConnection.js'); 
var mysqlModel = require('../utilities/mysql-model.js'); 
var object = mysqlModel.MyAppModel; 
Leave = new object({tableName: "leave_history"}); 

我提示以下錯誤:

類型錯誤:對象是不是對象的構造 。 (C:\ WAMP \ WWW \快車Redux的樣本主\服務器\型號\ leave.js:7:9)

幫我解決這個問題

+0

你的意思是「對象」? – Li357

回答

0

沒有正確mysqlModel.MyAppModel,因此它是undefined。您不會將該名稱的屬性分配給mysql-model.js中的出口。你做到了這一點:

module.exports = model; 

這使得出口對象本身,你的功能。而且,該函數也不是構造函數,它是一個正常的函數。

所以,一路mysql-model.js寫,你可以這樣做:

let mysqlModel = require('../utilities/mysql-model.js'); 
let leave = mysqlModel(); 

由於出口僅僅是一個正常的功能,你只是需要把它作爲一個正常的功能。

0

的mysql-model.js

var mysqlModel = require('mysql-model'); 

var MyAppModel = mysqlModel.createConnection({ 
    host: 'localhost', 
    user: "root", 
    password: "", 
    database: "test", 
}); 

module.exports = {MyAppModel}; 

leave.js

var dbConnectionCreator = require('../utilities/mysqlConnection.js'); 
var {MyAppModel} = require('../utilities/mysql-model.js'); 
Leave = new MyAppModel({tableName: "leave_history"}); 

試試上面的代碼片段,不亞於我得到,它是一個進口/出口混亂。

+0

謝謝,請你解釋一下這個 – user3265816

+0

只是mysql-model的文檔,它很好。 我已經使用ES6語法將一個屬性拉出值。 'var {MyAppModel} = require('../ utilities/mysql-model.js');'也可以寫成var var MyAppModel = require('../ utilities/mysql-model.js')。 MyAppModel;' –