我试图使用express.js将文件作为对GET请求的响应返回
我写了一个简单的FileManager
类来处理文件请求,但是当我调用'undefined is not a function'
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
答案 0 :(得分:5)
在FileManager.js中......您需要导出对象。
module.exports = {
FileManager : FileManager
}
server.js
var FileManager = require('./FileManager.js').FileManager;
// this has the FileManager object that was created in the FileManager.js