javascript - 为什么我得到 'undefined is not a function' ?

标签 javascript node.js express server

我正在尝试使用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/

相关文章:

node.js - 如何使用 Handlebars 更改 Express 中的默认布局?

javascript - 如何使用 Chrome 浏览器开发人员工具调试网页上的脚本?

node.js - 在 Typescript 中编写和运行 node.js 应用程序

javascript - Three.js PointsMaterial 性能缓慢 - 大 Sprite /形状会降低性能

node.js - MongoDB 查询查找具有变体的文档

node.js - npm 全局安装不使用 Node

javascript - 如何使用 Express.js 中的值数组和准备好的语句来更新 MySQL 中的表?

node.js - 找不到路由时表示 4 中间件(未调用最终处理程序): how to check for it?

javascript - 将 Date() 转换为 IsoString 未显示正确的 hh :mm:ss

JavaScript 不会在页面上写入