将Nodejs和Angular 2连接到SQL Server 2014

我正在使用Angular 2和Nodejs连接到SQL Server。 如果我简单地把下面的代码放在一个js文件中,并使用node test.js通过控制台运行,代码将正确删除logging。

这里是代码:

 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项目(其中index.html文件也存在)中的src文件夹中。 我把相同的代码放入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">放到脚本path中,并用下面的方法调用函数:

 <script> testConnection(); </script> 

索引页面正确执行,但不显示任何错误,也不执行该命令。 我无法理解为什么相同的代码在Nodejs的控制台上工作,但不是在我的index.html中。

帮助将不胜感激。

您不能在浏览器中运行节点应用程序。 Nodejs是一个在您的操作系统上的Google V8 Javascript VM中运行Javascript的应用程序,并且是一个后端系统(至less在Web开发堆栈中)。

所以你基本上必须在networking服务器上运行你的Node程序,并从Angular应用程序发出你的API请求。

网上有几个教程可以帮助你。

这里是官方的Angular文档angular.io