首页 文章

TypeError:string不是函数?

提问于
浏览
1

大家好我是节点js的新手

我正在尝试运行以下代码

var express = require('express'),
    app = express(),
    cons = require('consolidate'); // Templating library adapter for Express

    app.engine('html', cons.swig);
    app.set('view engine', 'html');
    app.set('views', __dirname + '/views');

    app.get('/', function(req, res){
        res.render('hello', { name : 'World' });
    });

    app.get('*', function(req, res){
        res.send('Page Not Found', 404);
    });

    app.listen(8080);
    console.log('Express server started on port 8080');

然后错误来了

TypeError:string不是ServerResponse.render上的EventEmitter.render(C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ application.js:569:12)中的函数(C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ response.js:961:7)在C:\ Users \ YAm \ Desktop \ mongodb \ work \ test_coso.js:10:6在Layer.handle [as handle_request ](C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ layer.js:95:5)at next(C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ route.js:131:13)在Layer.dispatch(C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ route.js:112:3)中 . 在C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules处理[as handle_request](C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ layer.js:95:5) \ express \ lib \ router \ index.js:277:22在Function.process_params(C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ index.js:330:12)下一步(C:\用户\山药\桌面\ MongoDB的\工作\ node_modules \表现\ LIB \狂胜er \ index.js:271:10)在Layer.handle的expressInit(C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ middleware \ init.js:33:5)[as handle_request] (C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ layer.js:95:5)trim_prefix(C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ index.js:312:13)在C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ index.js:280:7在Function.process_params(C:\ Users) \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ index.js:330:12)at next(C:\ Users \ YAm \ Desktop \ mongodb \ work \ node_modules \ express \ lib \ router \ index的.js:271:10)

2 回答

  • 0

    只需查看express res.render()的文档 . 我认为你的语法有问题 .

    // send the rendered view to the client
    res.render('index');
    
    // if a callback is specified, the rendered HTML string has to be sent explicitly
    res.render('index', function(err, html) {
      res.send(html);
    });
    
    // pass a local variable to the view
    res.render('user', { name: 'Tobi' }, function(err, html) {
      // ...
    });
    
  • 0

    代码没有任何问题,对我来说工作正常

    执行以下操作来调试问题

    • 检查 views 文件夹里面的 hello.html 文件删除所有的html代码并尝试放一些简单的"Hello Word"

    • 创建一个新文件夹并复制粘贴js脚本和views文件夹然后尝试npm install express,巩固和swig

    • 检查v5.5.0的节点版本是否正常工作没有任何问题

相关问题