我的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/#############################
如果有人可以解释,那就太好了。
答案 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
});