2017-08-28 5 views
0

私はNodeJSでホームオートメーションシステムを構築しています。私は、ExpressでShell_exec関数を使用してラズベリーpiのいくつかのコマンドを起動したいと思います。 JADEのonclickイベントでどうすればいいですか?Node.jsを実行するShell_Execコマンドonclick

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var shell_exec = require('shell_exec').shell_exec; 

var mongoose = require('mongoose'); 
mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://localhost:27017/homeapp'); 

var passport = require('passport'); 
var LocalStrategy = require('passport-local').Strategy; 

var index = require('./routes/index'); 
var users = require('./routes/users'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon in /public 
app.use(favicon(path.join(__dirname, 'public/images', 'favicon-32x32.png'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(passport.initialize()); 
app.use(passport.session()); 
var User = require('./models/User'); 
passport.use(new LocalStrategy(User.authenticate())); 
passport.serializeUser(User.serializeUser()); 
passport.deserializeUser(User.deserializeUser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/', index); 
app.use('/users', users); 

module.exports = app; 

そして、これは、ルーティングと私のindex.jsです:

var express = require('express'); 
var router = express.Router(); 
var auth = require('../controller/AuthController.js'); 

router.get('/', auth.home); 

router.get('/login', auth.login); 

router.post('/login', auth.doLogin); 

router.get('/logout', auth.logout); 

module.exports = router; 

そして、これは私がonclickイベントをしたいヒスイの​​ファイルである

は、これは私のエクスプレスでapp.jsです

div.btn(onclick="shell_exec"); 

答えて

1

JadeビューからNode.jsコマンドを呼び出すことはできません。 Jadeビューはクライアントのブラウザで解析され、そのファイルに書き込むjavascriptコマンドはすべてブラウザで実行されます。

ビューでは、AJAXリクエストを生成するコードをnode.jsサーバーとnode.jsアプリケーション作成ルートに追加して、要求を処理してコマンド(shell_exec)を実行する必要があります。

関連する問題