我正在尝试使用express.js 返回一个文件作为对 GET 请求的响应 我编写了一个简单的 FileManager 类来处理文件请求,但是当我调用 new FileManager() 时,我收到了“未定义不是函数”错误
这是我尝试执行此操作的方法:
//FileManager.js
FileManager = function () {}; //Empty initializer
FileManager.prototype.handleFileRequest = function(req,res){
var fileId = req.params.id
if(fileId){
var path = './uploads/events' + fileId;
res.sendfile(path)
} else {
res.send(404, 'file not found')
}
}
这是服务器:
//server.js
var express = require('express');
var FileManager = require('./FileManager.js').FileManager;
var app = express();
var fileman = new FileManager();
app.get('/:id', function (req, res){
console.log('get id:' + req.params.id);
fileman.handleFileRequest(req,res);
})
app.listen('blabla',3000);
但是当我运行 node server.js
时,出现以下错误:
var fileman = new FileManager();
^
TypeError: undefined is not a function
最佳答案
在 FileManager.js 中...您需要导出对象。
module.exports = {
FileManager : FileManager
}
服务器.js
var FileManager = require('./FileManager.js').FileManager;
// this has the FileManager object that was created in the FileManager.js
关于javascript - 为什么我得到 'undefined is not a function' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29106620/