2016-07-08 100 views
0

我的Bash代碼在終端中執行時運行正常,但是當我從一個js文件執行時。它給了我下面的錯誤:Bash編碼錯誤

[email protected]:~/node_modules/Chris# sudo node index.js 
/home/chris/node_modules/bat.sh:2 
curl -X POST \ 
     ^^^^ 
SyntaxError: Unexpected identifier 

了代號爲觸發器是

var config = require('./config'); 
var dash_button = require('node-dash-button'); 

var dash = dash_button(config.dash.MAC_address); 

dash.on('detected', function(){ 
var spawn = require('bat.sh').spawn; 

}); 

代碼:

!/bin/sh 

curl -X POST \ 
    --data-urlencode 'payload={"text": "This is Dash.", "channel": "#water-cooler", "username": "MrBot", "icon_emoji": ":neckbeard:"}' \ 
    https://hooks.slack.com/services/############################# 

如果有人可以解釋,那將是巨大的。

+0

這與java有什麼關係? –

+0

@ScaryWombat使用的編程語言有一個相似的名字。我刪除了標籤 –

回答

1

您不能require node.js中的shell腳本。

https://nodejs.org/api/child_process.html說如何執行另一個程序。

Node.js可以在沒有外部程序的情況下發出HTTP請求。在這個例子中,我使用的是request庫。

var request = require('request'); 
request.post('https://hooks.slack.com/services/#############################', 
    {form: {payload:'{"text": "This is Dash.", "channel": "#water-cooler", "username": "MrBot", "icon_emoji": ":neckbeard:"}'}}, 
    function (error, response, body) { 
     //do something 
    }); 
+0

沒有工作。你可以給我一個塊以不同的方式啓動它嗎? – ImAboveAverage