javascript - 将 Nodejs 和 Angular 2 连接到 SQL Server 2014

标签 javascript node.js angular sql-server-2014 angular2-forms

我正在使用 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');

之后我将同一个文件移动到 src我的 Angular 2 项目中的文件夹(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 中却无效。

帮助将不胜感激。

最佳答案

您不能在浏览器中运行 Node 应用程序。 Nodejs 是一个在您的操作系统上的 Google 的 V8 Javascript VM 中运行 Javascript 的应用程序,旨在成为后端系统(至少在网络开发堆栈中)。

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

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

这是 Angular 的官方文档 angular.io

关于javascript - 将 Nodejs 和 Angular 2 连接到 SQL Server 2014,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45184158/

相关文章:

javascript - Electron,IPC 通信似乎不起作用

javascript - 运行minio服务器时不会出现对minio浏览器的更改

angular - RouterModule.forRoot(ROUTES) 与 RouterModule.forChild(ROUTES)

javascript - 在 php 代码中使用 javascript 变量

javascript - react-router 在使用 Flow 类型时是否需要特定指导?

javascript - ES6 替代 async.seq 流程控制

javascript - 三个 JS OBJloader - obj 未正确导入

javascript - 如何从nodejs访问Angular Js数据

angular - Ionic 2 在应用程序启动后重定向到另一个页面

javascript - 从组件对服务进行 ajax 调用并访问来自另一个组件的响应