You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用Connect框架报Cannot read property 'use'错误求助

问题排查与修复方案

嘿,这个问题其实挺典型的——你把变量初始化的顺序搞反啦!

问题根源

在你的代码里,你先调用了app.use(doFirst)和app.use(doSecond),但这时候app变量还没被赋值成connect()的实例,它此时是undefined,自然就会抛出“Cannot read property 'use' of undefined”的错误。

JavaScript里变量声明会被提升,但赋值操作是严格按代码顺序执行的,所以在执行app.use()的时候,app还只是一个未赋值的变量,指向undefined。

修正后的代码

把var app = connect();移到调用app.use()的前面就可以解决问题了:

var connect = require('connect');
var http = require('http');

function doFirst(request, response, next) {
    console.log('bacon');
    next();
}

function doSecond(request, response, next) {
    console.log('tuna');
    next();
}

// 先初始化connect实例
var app = connect();
// 再注册中间件
app.use(doFirst);
app.use(doSecond);

http.createServer(app).listen(8080);

小建议

以后写代码可以养成把变量初始化放在靠前位置的习惯,能有效避免这类顺序问题~

内容的提问来源于stack exchange,提问作者rash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:56:46