当前位置: 首页 > 知识库问答 >
问题:

使用ExpressJs的NodeJs:TypeError:string不是函数处的函数。应用程序。提供

尹昂雄
2023-03-14

我刚刚开始学习Node,我正在尝试使用Node和Express构建一个Web应用程序。我的app.js文件中有以下代码,具有以下目录结构。

目录结构:

app
   assets
   controller
   model
   view
      index.jade
global
node_modules
app.js
package.json

-js公司-

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

app.configure(function() {
  app.set('view', __dirname + '/app/view');
  app.set('view engine', 'jade');
  app.use(app.router);
});

app.get('/', function(req, res){
    res.render('index', {title: 'express'});
});

app.listen(3000);
console.log('Listening on port 3000');

运行命令node app并转到localhost:3000后。我得到以下错误。我想它不喜欢这一行的字符串-

错误消息:

TypeError:字符串不是函数在Fnode_modules(C:\myapp\Express\node_modules\Express\lib\node_modules: 12)在ServerRnode_modules(C:\myapp\Express\node_modules\Express\lib\node_modules: 7)在C:\myapp\Express\node_modules: 6在回调(C:\myapp\Express\node_modules\Express\lib\router\index.js:164: 37)在参数(C:\myapp\Express\node_modules\Express\lib\router\index.js:138: 11)在传递(C:\myapp\Express\node_modules\Express\lib\router\index.js:145: 5)在路由器。_dispatch(C:\myapp\Express\unction.app.render\Express\lib\router\index.js:173: 5)在Object.router(C:\myapp\Express\application.js:488\Express\lib\router\index.js:33: 10)在下一个(C:\myapp\Express\esponse.res.render\Express\response.js:803\connect\lib\proto.js:190: 15)在Object.expressInit[作为句柄](C:\myapp\Express\app.js:19\Express\lib\middleware.js:30: 5)

共有1个答案

金旺
2023-03-14

我认为这只是一个输入错误/错误设置“视图”(单数)而不是“视图”(复数)。看看这个例子。我认为Express应用程序对象既有“视图”也有“视图”设置,但它们的意思不同。

https://github.com/visionmedia/express/blob/master/examples/jade/index.js

以下是您需要明确的解决方案:

  app.set('views', __dirname + '/app/view');
 类似资料:
  • 如果您已经开始使用包和蓝图(用蓝图实现模块化的应用)辅助您的应用开发了,那么 这里还有一些非常好的办法可以进一步的提升开发体验。当蓝图被导入的时候, 一个通用的模板将会负责创建应用程序对象。但是如果你将这个对象的创建工作 移交给一个函数来完成,那么你就可以在此后创建它的多个实例。 这么做的目的在于: 测试。你可以使用多个应用程序的实例,为每个实例分配分配不同的配置, 从而测试每一种不同的情况。 多

  • 当我将处理程序作为箭头函数传递时,我的抛出一个警告: 我从这篇文章中读到的答案是:https://stackoverflow.com/questions/36677733/why-shouldnt-jsx-props-use-arrow-functions-or-bind#:~:text=why%20you%20shownt%20use,previous%20function%20is%20gar

  • 代码如下: 我得到以下错误: /users/johann/work/dev/kotlin/rxjava-walkthrough-kotlin/app/src/test/java/ktplay/rxkotlinplay.kt:(49,14):不能使用提供的参数调用以下函数:@checkreturnvalue@schedulersupport public final fun subscribe(p0

  • 关于函数使用,与带来的问题。 函数 函数主要给数据提供处理与转换方便。 大多数SQL实现的函数 用于处理文本串(删除,充值,大小写转换) 用于在数值的数据上进行算术(返回绝对值,代数运算)操作。 用于处理日期时间值并从这些值中提取特定成份。 返回DBMS正使用的特殊信息(用户登录信息)。 文本处理函数 使用UPPER()函数来转换大小写。 mysql> SELECT vend_name, UPPE

  • 问题内容: 我想使用Java 8的新引入的函数对象将一些参数部分地应用于传统方法。 这是有问题的方法: 问题答案: 这实现了我想做的事情: 有关Java函数对象的所有预定义变体的列表,请在此处查看。 编辑: 如果您的方法带有很多参数,则可以编写自己的函数: 方法接受很多参数;您想提供其中一些: 这是使用自定义函数对象的方式:

  • 如果是的话,那为什么我们到处都是用Java8进行函数式编程的文章呢?