node.js - NodeJS 导出未在外部 JS 文件中定义

标签 node.js express

我正在从路由文件中的外部 JS 文件调用函数。因此,我尝试从 externalFile.js 文件导出一个函数。但是,当我运行 Node 服务器时,它会抛出 Uncaught ReferenceError:未定义导出externalFile.js 位于 public/javascripts/ 中,路由文件位于 routes/ 中。

外部文件(externalFile.js):

exports.capsolvingComplete = function (stdout){
    //Received, display text and hide the spinner, put check in place.
    $('#capsolv-complete').css("display", "block")
    $('#capsolv-output').text(stdout);
}

路线文件:

var express = require('express');
var router = express.Router();
var script = require('../public/javascripts/externalFile.js')

/* GET home page. */
router.get('/', function(req, res) {
  res.render('index', { title: 'CapSolv' });
});

router.post('/file-upload', function(req, res){
    script.capsolvingComplete("HI");
    res.end("success");
})

module.exports = router;

感谢您的帮助!这里有点 Node 菜鸟的意思。

最佳答案

看看你的例子,mscdex是正确的。 Node 中所需的任何内容都设计为在服务器上运行,并且无法访问浏览器的 DOM。

我建议构建一个 REST API,它接受文件上传、存储文件并返回包含元数据的 JSON 对象:即文件的存储位置、大小等,并让您的客户端处理这些内容。

关于node.js - NodeJS 导出未在外部 JS 文件中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594475/

相关文章:

javascript - Google Pub/Sub 如何在 Pull 上设置读取超时

javascript - 为什么 Chrome 会发送这么多 HTTP 请求?

javascript - 一键提交多个表单(动态创建),每个表单可以单独提交

带有 Express 的 Node.js - 抛出错误与下一个(错误)

node.js - 找不到模块 : Error: Cannot resolve 'file' or 'directory'

node.js - 无法通过 express/mongoose/angularjs 从 Mongodb 访问数据

javascript - 用 sinon stub uuid

javascript - Express - 不呈现 POST 响应

node.js - 使用Express作为Feed时,如何打包 Electron 应用程序?

javascript - 无法从 Express Route 查询 MySQL 数据库