将 Nodejs 和 Angular 2 连接到 SQL Server 2014

Connect Nodejs and Angular 2 to SQL Server 2014

我正在使用 Angular 2 和 Nodejs 连接到 SQL 服务器。如果我只是将以下代码放入 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 是 运行s Javascript 在 Google 的 V8 Javascript VM 中的一个应用程序,它是一个后端系统(至少在网络开发中是这样)堆栈)。

因此,您基本上必须 运行 网络服务器上的 Node 程序,并从 Angular 应用程序发出 API 请求。

互联网上有几个教程可以帮助您解决这个问题。

这是官方 Angular 文档 angular.io