2017-10-28 83 views
0
var mysql = require('mysql'); 
var Schema = mysql.Schema; 

var HumanSchema = new Schema({ 
    fname : String, 
    lname : String, 
    age : String, 
    address: String, 
    city : String 
}) 

var Model = mysql.Model('Human',HumanSchema); 

module.exports = Model; 

這是我在Angular 2和node js app中的Model代碼。 當編譯它說TypeError:使用mysql時Schema不是構造函數

D:\Angular2MEANStack-master\models\model.js:3 
var HumanSchema = new Schema({ 
       ^

TypeError: Schema is not a constructor 
    at Object.<anonymous> (D:\Angular2MEANStack-master\models\model.js:3:19) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (D:\Angular2MEANStack-master\routes\api.js:3:13) 
    at Module._compile (module.js:570:32) 

我已經安裝了所需的所有的依賴關係。但不能部署這個。

+0

請編輯您的問題,以便代碼位於代碼塊內。這將使它更清晰。 –

+0

在文檔(https://github.com/mysqljs/mysql)中看不到像'mysql.schema'這樣的東西。你使用的是正確的軟件包嗎? – nilobarp

回答

0

從我看到你做的事情來看,你實際上不能用那個npm包創建一個mysql數據庫模型。您需要使用ORM連接工具(如sequelize)才能在mysql數據庫中建立連接並執行操作。您可能會決定通過這個續集文檔來了解如何才能做到這一點。

http://docs.sequelizejs.com/manual/installation/getting-started

0

MySQL的僅用於MySQL的一個Node.js的驅動程序。

var mysql = require('mysql'); 

在上面的代碼中,您使用的是「mysql」驅動程序,並且只能使用該庫提供的特定功能。在https://www.npmjs.com/package/mysql

查看文檔https://github.com/mysqljs/mysql

// Sample code with mysql 
var mysql = require('mysql'); 
var connection = mysql.createConnection({ 
    host: 'localhost', 
    user: 'me', 
    password: 'secret', 
    database: 'my_db' 
}); 

connection.connect(); 

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { 
    if (error) throw error; 
    console.log('The solution is: ', results[0].solution); 
}); 

connection.end(); 

現在,如果你正在尋找ORM來處理好方式數據庫交互,你可以使用Sequelize

相關問題