[英]Connecting to SQL Server from Nodejs
我正在使用Node js和SQL Server 2008開發示例應用程序。
要從節點js訪問SQL Server,請使用seriate [ http://developer.leankit.com/painless-sql-server-with-nodejs-and-seriate/] 。
下面是我的示例代碼
文件./DBLayer/db.js代碼
var sql = require("seriate");
var config = {
"server": "127.0.0.1",
"user": "sa",
"password": "12kafour~9999",
"database": "Tickets"
};
sql.setDefaultConfig( config );
exports.sqlDb = sql;
和文件app.js代碼
var express = require('express');
var app = express();
var path = require('path');
var bodyParser = require('body-parser');
var sqlDb = require('./DBLayer/db.js');
//-- set the view engine
app.set('view engine' , 'ejs');
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies ??
extended: true
}));
//-- set the routes
app.get('/login' , function(req , res){
//-- set the view to render
res.render('login' , {title:'Login Screen' , error : ''});
});
app.post('/login' , function(req , res) {
sqlDb.execute( {
query: "SELECT count(*) FROM USERS WHERE LOGIN ='" + req.body.username + "'" + "AND PASSWORD = '" + req.body.pwd + "'"
} ).then( function( results ) {
res.render('login' , {title:'Login Screen' , error : 'u r the one...'});
}, function( err ) {
res.render('login' , {title:'Login Screen' , error : 'Invalid Login/Password.'});
});
});
//-- set the port
var server = app.listen(3000 , function() {
console.log('Server Ready..')
});
當用戶輸入用戶名和密碼並提交時,出現“ TypeError:sqlDb.execute不是函數”錯誤。
我不確定為什么會收到此錯誤。
您應該更改此行:
var sqlDb = require('./DBLayer/db.js');
至
var sqlDb = require('./DBLayer/db.js').sqlDb;
或更改此行:
exports.sqlDb = sql;
至
exports = sql;
說明:在Node中,執行此操作時: var sqlDb = require('./DBLayer/db.js');
它使sqlDb成為exports
對象。
因此,在您的代碼中有exports.sqlDb = sql
。 編譯器是對的,沒有執行功能。 出口只有1個exports.sqlDb
, exports.sqlDb
。
溫馨提示:如果您確實希望代碼能夠正常工作,而無需更改app.js
,則可以將其添加到模塊末尾:
exports.execute=function(){
return sql.execute.call(sql,arguments)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.