我正在使用Angular 2和Nodejs连接到SQL Server。如果我简单地将下面的代码放在js文件中并使用node test.js
通过控制台运行,代码将正确删除记录。将Nodejs和Angular 2连接到SQL Server 2014
下面是代码:
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');
之后,我在我的角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服务。 – Jay
将您的标记从angularjs更改为angular,因为angular 2与angularjs不同。 – Wernerson