2017-07-19 16 views
1

Angular 2とNodejsを使用してSQL Serverに接続しています。私が単にjsファイルに次のコードを入れて、コンソールでnode test.jsを使って実行すると、コードはレコードを適切に削除します。私は私の角度2プロジェクトにsrcフォルダに同じファイルを移動した後、その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'); 

(index.htmlファイルも存在する):ここで

はコードです。今、私はインデックスページから testConnection()を呼び出したい

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'); 



} 

:私はそのようなtest.jsファイル内の関数に同じコードを置きます。私は、スクリプトのパスに<script src="C:\Users\amandeep.singh\Desktop\Angular\my-app\src\test.js">を入れて、これを使用して関数を呼び出しています

<script> 
testConnection(); 
</script> 

をインデックスページが正しく実行されるが、任意のエラーを表示したり、コマンドを実行しません。 Nodejsのコンソールで同じコードが動作するのはなぜわかりませんが、私のindex.htmlでは理解できません。

お願いします。

+0

です。 NodeJSコードはバックエンドとして動作するはずです。バックエンドロジックを公開するNodeJS/ExpressコードでWebサービスを記述する必要があります。その後、Angularコードでは、$ httpサービス経由でWebサービスを呼び出す必要があります。 – Jay

+0

角度2はangularjsと同じではないので、タグをangularjsから角度に変更しました。 – Wernerson

答えて

1

ノードアプリケーションをブラウザで実行することはできません。 Nodejsは、オペレーティングシステム上のGoogleのV8 Javascript VMでJavascriptを実行するアプリケーションで、バックエンドシステム(少なくともWeb開発スタックの場合)を対象としています。

基本的には、Webサーバー上でNodeプログラムを実行し、AngularアプリケーションからAPIリクエストを行う必要があります。

インターネットでは、これに役立ついくつかのチュートリアルがあります。ここで

はNodeJS JavaScriptコードを直接ブラウザで実行することはできません公式アンギュラドキュメントangular.io

+0

ありがとうWernerson、今私はノード内のAPIを作成し、それをプロジェクトで使用しています。 –

関連する問題