Bash编码错误

时间:2016-07-08 00:12:41

标签: javascript linux bash ubuntu

我的Bash代码在终端中执行时运行正常,但是当我从js文件执行时。它给了我以下错误:

root@ChrisAlienWare:~/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/#############################

如果有人可以解释,那就太好了。

1 个答案:

答案 0 :(得分: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
    });