【问题】
参考官网:
写代码:////https://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/sql-database/#ConnectionInfo
var sql = require('node-sqlserver');
var conn_str = "Server=tcp:xxx.database.windows.net,1433;Database=xxx;User ID=xxx;Password=xxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;";
var http = require('http')
var port = process.env.port||3000;
http.createServer(function (req, res) {
sql.query(conn_str, "SELECT * FROM TestTable", function (err, results) {
if (err) {
res.writeHead(500, { 'Content-Type': 'text/plain' });
res.write("Got error :-( " err);
res.end("");
return;
}
res.writeHead(200, { 'Content-Type': 'text/plain' });
for (var i = 0; i < results.length; i ) {
res.write("ID: " results[i].ID " Column1: " results[i].Column1 " Column2: " results[i].Column2);
}
res.end("; Done.");
});
}).listen(port);
结果出错:iisnode encountered an error when processing the request.
HRESULT: 0x2
HTTP status: 500
HTTP reason: Internal Server Error
You are receiving this HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled configuration setting is 'true'.
In addition to the log of stdout and stderr of the node.exe process, consider using debugging and ETW traces to further diagnose the problem.
The last 64k of the output generated by the node.exe process to stderr is shown below:
Application has thrown an uncaught exception and is terminated:
Error: Cannot find module 'node-sqlserver'
at Function._resolveFilename (module.js:337:11)
at Function._load (module.js:279:25)
at Module.require (module.js:359:17)
at require (module.js:375:17)
at Object. (C:\DWASFiles\Sites\uyb-dev\VirtualDirectory0\site\wwwroot\server.js:10:11)
at Module._compile (module.js:446:26)
at Object..js (module.js:464:10)
at Module.load (module.js:353:31)
at Function._load (module.js:311:12)
at Module.require (module.js:359:17)
【解决过程】
1. 想了想,以前参考过:
下载中提到的
node-sqlserver
并且安装,结果实际上sql名为:
msnodesql,对应的package.json也是这个值:{
"name": "msnodesql",
"description": "Microsoft Driver for Node.js for SQL Server",
"author": "Microsoft Corp.",
"contributors": [ "Jonathan Guerin ", "Jay Kint ", "Warren Read ", "George Yan ", "Inga Verbitskaya "],
"version": "0.2.0",
"keywords": ["sql", "database", "mssql", "azure", "sqlserver", "tds", "microsoft", "msnodesql", "node-sqlserver"],
"homepage": "https://github.com/WindowsAzure/node-sqlserver",
"bugs": "https://github.com/WindowsAzure/node-sqlserver/issues",
"licenses": [
{
"type": "Apache 2.0",
"url": "https://raw.github.com/WindowsAzure/node-sqlserver/master/LICENSE"
}
],
"main": "./lib/sql.js",
"repository": {
"type": "git",
"url": "git://github.com/WindowsAzure/node-sqlserver.git"
},
"engines": {
"node": ">=0.6"
},
"devDependencies": {
"mocha" : "0.14.x",
"async" : "0.1.x"
},
"os" : [ "win32" ]
}
这就是为什么我想,把上面提到的
var sql = require(‘node-sqlserver’);
换为:
var sql = require(‘msnodesql’);
结果也出错:Error: Cannot find module 'msnodesql'
2.