2017-12-27 1312 views
2

我想执行一些特定的nodejavascript文件,在我的网站上有一个“点击”事件。我正在使用express来运行我的服务器和网站。我认为正确的做法是使用jQuery和一些GET请求。该Javascript文件的工作,如果我只需在控制台"node examplefile.js"打电话给他们的文件看起来像这样:从节点服务器执行脚本

var MapboxClient = require('mapbox'); 
var client = new MapboxClient(''); 
client.listStyles(function (err, styles) { 
    console.log(styles); 
}); 

我想每次执行此文件中的一个上点击事件发生。

我是否必须将其作为模块导出到我的app.js?这是我想要做的,但我在实施中失败了。

任何建议或简单的例子如何实现这一点?

回答

0

这是更好的创建一个新的模块,然后由快递应用

称之为创建新的模块(getStyles.js):

var MapboxClient = require('mapbox'); 
var client = new MapboxClient(''); 

module.exports = function (done) { 

    client.listStyles(function (err, styles) { 

     if (err) { 
      return done(err); 
     } 

     done(null, styles); 
    }); 

} 

使用它明确内部应用程序:

... 

var getStyles = new MapboxClient('path/to/getStyles'); 

app.get('/your/route/here', function (req, res, next) { 

    getStyles(function (err, styles) { 

     if (err) return next(err); 

     res.render('view', styles) 

    }); 

}); 

... 

但是如果你想从express执行命令行,那么使用exec函数,这里是一个例子:

... 

const exec = require('child_process').exec; 

app.get('/on/click/buton/route', function (req, res, next) { 

    exec('/usr/bin/node file/path/.js', function (err, stdout, stderr) { 
     if (err) { 
      return next(err); 
     } 
     // send result to the view 
     res.render('veiw', { res: stdout}); 
    }); 

}); 

... 
0

1.Write功能在您examplefile.js

function a(){ 
var MapboxClient = require('mapbox'); 
var client = new MapboxClient(''); 
client.listStyles(function (err, styles) { 
console.log(styles); 
}); 

2.Include examplefile.js在app.js

<script src="examplefile.js" type="text/javascript"></script> 

3.Then调用()由的onclick(从app.js)事件文件

<input type="button" onclick="javascript: a();" value="button"/> 

这是我的理解,你正在尝试做的。

相关问题