首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法可以从AngularJS控制器中生成CLI命令?

有没有一种方法可以从AngularJS控制器中生成CLI命令?
EN

Stack Overflow用户
提问于 2019-11-04 19:42:27
回答 1查看 408关注 0票数 0

我已经创建了一个服务来使用我的AngularJS控制器使用child-process来生成一些CLI/终端命令,但是我似乎无法做到这一点。以下是我的服务:

listFiles.js:

代码语言:javascript
复制
'use strict'
var exec = require('child_process').exec;


const listFiles = function(){
    exec('ls', (err, stdout, stderr) => {
      if (err) {
        // node couldn't execute the command
        return;
      }

      // the *entire* stdout and stderr (buffered)
      console.log('stdout: ' + stdout);
      console.log(stderr);
    });
}

export default listFiles;

我还将以下内容添加到我的package.json中:

代码语言:javascript
复制
"browser": { 
    "fs": false, 
    "child_process": false 
  },

我得到了以下错误:

TypeError: exec不是一个函数

我用webpack来构建这个应用程序。是否有一种在AngularJS控制器/或作为AngularJS服务中生成CLI命令的方法?

EN

回答 1

Stack Overflow用户

发布于 2019-11-04 19:53:46

请看以下问题:

(进程‘)

总之:您不能通过浏览器应用程序运行子进程,因为这将是一个巨大的安全问题。

如果您想在服务器上运行某些命令,请使用NodeJS或任何其他服务器技术编写REST,并从您的AngularJS应用程序中调用它。

更新:

下面是一个简单的示例,说明如何使用express来处理HTTP请求。

代码语言:javascript
复制
var express = require('express');
var app = express();

app.get('/', function (req, res) {
    const command = req.query. command // Get the command form the query parameters.
    // DO WHATEVER YOU WANT TO DO USING child_process

});

app.listen(3000, function () {
    console.log('App listening on port 3000');
});

您可以在正式的ExpressJs文档中找到不同的例子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58700036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档