将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