2016-07-08 75 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