2017-07-26 69 views
0

我正在學習工作自動化,目前有點卡住了。到目前爲止,stackoverflow已經是一個生活救星:)導入功能 - NodeJS - 非html

我正在爲JavaScript(節點)中的visualstudio寫一個測試硒。我知道這不是一個很好的組合,但那是什麼工作想要的。

我在app.js文件中有一個測試(見截圖)。它引用了functions.js文件中的一個函數。儘管如此,我無法讓它識別這個功能。我認爲我需要引用包含該功能的文件。我已經嘗試從「functions.js」import'import cellFromXLS';'並且它不起作用(意外的令牌導入錯誤)。

關於我能做什麼的任何想法?像修改package.json文件以包含所有帶有函數的文件一樣嗎? 我在最新的node.js和最新的驅動程序。

此外,它似乎智能感知不適用於JavaScript在Visual Studio中。這是正確的還是解決它? VisualStudio screenshot

+2

[節點錯誤可能的重複:語法錯誤:意外令牌導入](https://stackoverflow.com/questions/37634198/node-error-syntaxerror-unexpected-token-import) – Hitmands

+0

在功能ion.js:cellFromXLS = function(cellId){//定義sheetNumber var sheetNumber = 0; //定義文件路徑名稱 var fileNamePath =('trial.xls'); // NodeJs讀取文件 var XLS; (typeof require!=='undefined'){ XLS = require('xlsjs'); } //使用工作簿 var workbook = XLS.readFile(fileNamePath); var sheetNamelist = workbook.SheetNames; var value = workbook.Sheets [sheetNamelist [sheetNumber]] [cellId] .v; 返回值; }; module.exports = { cellFromXLS } – Endorium

+0

在apps.js中:const functions = require(「./ functions.js」); functions.cellFromXLS('A1'); – Endorium

回答

0

節點本身還不支持import

在你的函數文件,你可以這樣做

function blah(){ 
    console.log("I am blah") 
} 

function wah(){ 
    console.log("Wah wah") 
} 

module.exports = { 
    blah, 
    wah 
} 

然後app.js你可以這樣做:

const functions = require('./functions.js') 
functions.blah() 
functions.wah() 
+0

我已經嘗試了以上,但我得到一個messge說我的功能沒有定義?我把輸出行放在functions.js和'const'行中的app.js – Endorium

+0

http://i.imgur.com/OiRefD7。png 下面是它在行動中的截圖。你接近這個嗎? – horsantula

+0

是的,從兩個.js文件中添加我的代碼 – Endorium

0

錯誤已經告訴你什麼是錯的。 您需要使用

const cellFromXLS = require("./functions.js");

,而不是

import cellFromXLS from "functions.js"

,如果你想使用import語法,請Babel

+0

好吧,我不想用babel作爲企業必須驗證的額外事情(非常嚴重的審計行業)。我認爲nodejs現在支持從版本8導入?正如你所建議的那樣,我會採取另一種方式。 – Endorium