2016-10-19 18 views
1

剛剛進入節點並且今天第一次使用遠程機器(通過aws)。我寫了一個輸入文件(管道輸入),並希望在你的幫助之後將這些輸入內容填入數據庫中。我可以使用節點運行單個.js文件以與(本地)數據庫進行交互嗎?

文件獲取輸入很好,當我運行「節點文件名」,但是當我介紹了數據庫的一部分,它抱怨意想不到的標識符:function (exports, require, module, __filename, __dirname) { insert mysql

以下是我的文件的開頭:

const mysql = require('mysql'); 
const connection = mysql.createConnection({ 
    host  : 'localhost', 
    user  : 'user10', 
    password : 'abcdef', 
    database : 'mydb' 
}); 
connection.connect(); 

我npm安裝mysql我想;在文件的目錄中有一個節點模塊文件夾,其中有一個名爲mysql的文件夾。節點模塊只在我真正運行服務器或者有app.js或類似的東西時才起作用?這個東西對我來說太新了,我不確定我完全理解節點究竟是什麼;我知道我可以在Ruby中更容易地寫這些,但我想嘗試新的東西。

+0

沒有要求服務器或任何東西通常,除非你的數據庫本身陳述。任何'myFile.js'都可以。 –

回答

0

節點模塊只在我實際運行服務器或有一個 app.js或類似的東西時才起作用嗎?

您可以運行任何類型的使用JavaScript以JavaScript語言編寫的腳本,包括像Web服務器一樣運行的軟件。

包含單行console.log('Hello World!);的腳本hello.js可以使用命令node hello.js運行。

require函數用於包含用npm管理的另一個JavaScript文件或節點模塊。

按照documentation

如果傳遞給 模塊標識符需要()不是本機模塊,並且不以 '/', '../', 或」開頭。 /',那麼Node.js將從當前的 模塊的父目錄開始,並添加/ node_modules,並嘗試從該位置加載模塊 。節點不會將node_modules附加到已經以node_modules結尾的路徑 。

在你的情況,你將需要運行npm install命令,隨後每包名你要運行腳本require(),這包括mysql例如。

在刪除node_modules文件夾之前,您不需要運行該命令。如果您不想一直安裝軟件包,我建議您通過運行npm init創建軟件包,然後在每次要永久添加軟件包時將--save標誌添加到npm install,軟件包列表將被存儲在package.json文件中。

只要package.json文件存在,您將可以運行npm install而無任何其他參數來安裝所有--save d軟件包。

npm init 
npm install --save mysql 
rm -rf node_modules 
npm install 
相關問題