Node.js:通过前端执行服务器脚本

时间:2017-12-27 18:53:48

标签: javascript jquery html node.js express

我想在我的网站上执行一些特定的node JSon-click个活动。

我使用express来运行我的服务器和网站。我认为正确的方法是使用jQueryGET个请求。如果我只是在控制台中用"node examplefile.js"

调用它们,JS文件就可以了

该文件如下所示:

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

我想在每次发生on-click事件时执行此文件。

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

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

2 个答案:

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

}

在express app中使用它:

...

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});
    });

});

...

答案 1 :(得分:0)

1.在函数

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

2.在app.js中包含examplefile.js

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

3.然后通过app.js文件中的onclick()事件调用()

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

这就是我所理解的,你正在努力做到。