Node.js 从Nodejs连接到SQL Server
我正在使用NodeJS开发一个示例应用程序 和SQLServer2008 要从节点js am访问SQL server,请使用seriate[ 下面是我的示例代码 文件./DBLayer/db.js代码Node.js 从Nodejs连接到SQL Server,node.js,sql-server-2008,node-seriate,Node.js,Sql Server 2008,Node Seriate,我正在使用NodeJS开发一个示例应用程序 和SQLServer2008 要从节点js am访问SQL server,请使用seriate[ 下面是我的示例代码 文件./DBLayer/db.js代码 var sql = require("seriate"); var config = { "server": "127.0.0.1", "user": "sa", "password": "12kafour~9999", "database": "Tickets" }; sql.setDefa
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');
exports.sqlDb = sql;
到
或更改此行:
var sqlDb = require('./DBLayer/db.js');
exports.sqlDb = sql;
到
解释:在节点中执行时:var sqlDb=require('./DBLayer/db.js');
它使sqlDb成为导出对象
因此,在您的代码中有exports.sqlDb=sql。编译器是正确的,导出没有执行功能。导出只有1个var,exports.sqlDb
奖励提示:如果您真的想让代码正常工作,无需更改
app.js
您可以在模块末尾添加以下内容:
exports.execute=function(){
return sql.execute.call(sql,arguments)
}