【发布时间】:2017-12-24 08:20:14
【问题描述】:
我正在使用 Angular 2 和 Nodejs 连接到 SQL Server。如果我只是将以下代码放在 js 文件中并使用node test.js 通过控制台运行它,则代码会正确删除记录。
代码如下:
var webconfig = {
user: 'sa',
password: 'test',
server: 'localhost',
database: 'Test',
options: {
encrypt: false // Use this if you're on Windows Azure
}
}
var express = require('express');
var sql = require('mssql');
var http = require('http');
var app = express();
var port = process.env.PORT || 4200;
var connection = new sql.Connection(webconfig, function(err) {
var request = new sql.Request(connection);
request.query('delete from Employee where Id = 2382', function(err, recordset) {
if(err) // ... error checks
console.log('Database connection error');
console.dir("User Data: "+recordset);
});
});
app.listen(port);
console.log(port+' is the magic port');
之后,我将同一个文件移动到我的 Angular 2 项目中的 src 文件夹中(其中也存在 index.html 文件)。我将相同的代码放入 test.js 文件中的函数中,如下所示:
function testConnection()
{
var webconfig = {
user: 'sa',
password: 'test',
server: 'localhost',
database: 'Test',
options: {
encrypt: false // Use this if you're on Windows Azure
}
}
var express = require('express');
var sql = require('mssql');
var http = require('http');
var app = express();
var port = process.env.PORT || 4200;
var connection = new sql.Connection(webconfig, function(err) {
var request = new sql.Request(connection);
request.query('delete from Employee where Id = 2382', function(err, recordset) {
if(err) // ... error checks
console.log('Database connection error');
console.dir("User Data: "+recordset);
});
});
app.listen(port);
console.log(port+' is the magic port');
}
现在我想从索引页面调用testConnection()。我已将<script src="C:\Users\amandeep.singh\Desktop\Angular\my-app\src\test.js"> 放入脚本路径并使用此函数调用该函数:
<script>
testConnection();
</script>
索引页面正常执行,但没有显示任何错误,也没有执行命令。我无法理解为什么相同的代码在 Nodejs 的控制台中有效,但在我的 index.html 中无效。
我们将不胜感激。
【问题讨论】:
-
无法在浏览器中直接执行 NodeJS JavaScript 代码。 NodeJS 代码应该作为后端工作。您需要在暴露后端逻辑的 NodeJS/Express 代码中编写 Web 服务。然后在Angular代码中,需要通过$http服务调用web-service。
-
将标签从 angularjs 更改为 angular,因为 angular 2 与 angularjs 不同。
标签: javascript node.js angular sql-server-2014 angular2-forms