首页 > 解决方案 > 无法读取未定义的属性“_header”

问题描述

有问题的代码是该app.use(express.static("web"))行。

var express = require('express')();
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);

//app.get('/', function(res, req) {
//	res.sendFile(__dirname + '/www/index.html');
//})

app.use(express.static("web"));

在控制台中返回以下错误:

/Users/matthewwalker/CVLGBT/CVLGBT/www/node_modules/finalhandler/index.js:92
    if (!err && res._header) {
                    ^

TypeError: Cannot read property '_header' of undefined
    at /Users/matthewwalker/CVLGBT/CVLGBT/www/node_modules/finalhandler/index.js:92:21
    at Function.handle (/Users/matthewwalker/CVLGBT/CVLGBT/www/node_modules/express/lib/application.js:170:5)
    at app (/Users/matthewwalker/CVLGBT/CVLGBT/www/node_modules/express/lib/express.js:38:9)
    at Object.<anonymous> (/Users/matthewwalker/CVLGBT/CVLGBT/www/index.js:2:11)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)

其他时候,当我稍微更改代码时,我会得到express is not defined. 文件结构:root下的index.js和node模块,而所有的html/css/js/imgs都在/web下。我不确定为什么会抛出此标头标志。当我使用该app.get行时,它只发送 html 文件,但不发送图像或 js。我需要能够为 /web 的整个目录提供服务。

标签: javascripthtmlnode.jsimageexpress

解决方案


您在app第一行构造一个实例,然后在第 2 行调用它:

var express = require('express')();
var app = express();

你应该这样做:

var express = require('express');
var app = express();

或这个:

var app = require('express')();

您可以在此处找到有关 express api 的更多信息。


推荐阅读