Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >错误: Route.get()需要回调函数,但获得了[object Object]。使用Chai测试router+res.render函数

错误: Route.get()需要回调函数,但获得了[object Object]。使用Chai测试router+res.render函数
EN

Stack Overflow用户
提问于 2020-05-02 00:25:15
回答 2查看 155关注 0票数 0

我的main.js看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'use strict';
const express = require( 'express' );
const app = express();
const homeController = require( './controllers/homeController' );
const errorController = require( './controllers/errorController')

console.log("+get homeController");
app.get( '/', homeController );

console.log('+get  homeController.showUsers');
app.get( '/users', homeController.showUsers );

在homeController.js中,有一个我想用Chai测试的router.get方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', {
    title: 'Internship Approval System'
  });
});
... 
module.exports = router;

我的router.test.js文件如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var sinon = require('sinon');
var chai = require('chai');
var expect = chai.expect;

var router = require('./controllers/homeController');

describe('home route', function() {
  it('should return rendered response', function() {
    var req = {};
    var res = {
      render: sinon.spy()
    };

    return router.get(req, res).then(function() {
      expect(res.render.calledOnce).to.be.true;
    });
  });
});

我在尝试查看它是否被调用一次时出现错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1) home route
       should return a rendered response:
     Error: Route.get() requires a callback function but got a [object Object]
      at Route.<computed> [as get] (node_modules\express\lib\router\route.js:202:15)

      at Function.proto.<computed> [as get] (node_modules\express\lib\router\index.js:510:19)
      at Context.<anonymous> (router.test.js:15:19)
      at processImmediate (internal/timers.js:439:21)

如何修改main中的app.get( '/', homeController );,使其包含回调函数?

EN

回答 2

Stack Overflow用户

发布于 2020-05-02 17:12:14

homeController.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', {
    title: 'Internship Approval System'
  });
});

----

// Add this line in controller
module.exports = router;

main.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// replace this
app.get( '/', homeController );

// like so
app.use('/', homeController);
票数 0
EN

Stack Overflow用户

发布于 2020-05-03 03:02:38

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
describe("/users", () => {
  it("it should route to /users properly", done => {
    chai
      .request(app)
      .get("/users")
      .end((errors, res) => {
        expect(res).to.have.status(200);
        expect(errors).to.be.equal(null);
        done();
      });
  });
});

似乎很管用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61552867

复制
相关文章
SQL函数 %OBJECT
流字段上的 SELECT 返回流字段的完全形成的 oid(对象 ID)值。流字段上的 SELECT %OBJECT 返回流字段的 oref(对象引用)。这在以下示例中显示,其中 Notes 和 Picture 都是流字段:
用户7741497
2022/04/12
5971
object __new__函数
class Foo(object): def __new__(cls,*agrs, **kwds): print(agrs) #inst = super(Foo,cls).__new__(cls,*agrs, **kwds) 这样写会报错,原因是父类object的__new__不支持那么多参数 inst = super(Foo,cls).__new__(cls) print(inst) return inst
用户1733462
2019/03/04
4540
SQL函数 JSON_OBJECT
JSON_OBJECT接受逗号分隔的键:值对列表(例如,‘MyKey’:colname),并返回包含这些值的JSON对象。可以指定任何单引号字符串作为键名;JSON_OBJECT不强制任何命名约定或对键名进行唯一性检查。可以为值指定列名或其他表达式。
用户7741497
2022/04/06
2.9K0
变量类型测试函数的使用:六、is_object的用法
讲完PHP变量类型测试函数【is_array】的用法,今天来讲讲PHP变量类型测试函数【is_object】的用法。
大脸猫
2020/07/06
6920
变量类型测试函数的使用:六、is_object的用法
VBA Object对象的函数参数传递
VBA的函数参数传递方式是Byval和Byref,数值类型、Stirng等那些值类型的是要非常注意用哪种方式的。对于Object对象引用类型的一直都说2种方式完全没有区别。
xyj
2020/07/28
3.5K0
Python标准库:内置函数repr(object)
Type help() for interactive help, or help(object) for help about object.
全栈程序员站长
2022/07/08
3070
前端面试题: 关于对象的Object.is函数,错误的是?
Object.is() 判断两个值是否相同。如果下列任何一项成立,则两个值相同:
舒克
2020/02/11
1.9K0
前端面试题:  关于对象的Object.is函数,错误的是?
Django 错误:TypeError at / 'bool' object is not callable
使用 Django自带的 auth 用户验证功能,编写函数,使用 is_authenticated 检查用户是否登录,结果报错:
希希里之海
2018/08/02
8660
浅谈javascript中的回调函数javascript中的函数匿名函数回调函数回调函数的使用回调函数实例总结
要理解javascript中的回调函数,首先我们就要对javascript中的函数有一定的理解,所以我们先从javascript中函数谈起,讲讲它与其他语言中的函数有什么不同。
desperate633
2018/08/22
2.8K0
浅谈javascript中的回调函数javascript中的函数匿名函数回调函数回调函数的使用回调函数实例总结
让你在WebView中用JS调Native Object
之所做这个东西,源于之前项目中需要把一些页面用webView来呈现,但是web中需要调用native的方法,比如获取本地存的某些数据、调用摄像头等等,这里也就是说JS要和OC能够互通有无。所以简单来说我要做的事情就是要实现一个bridge,用于两方之间的通信,使其在web中能够像调用一个普通的JS一样去调用OC。
100000798482
2018/08/20
2.4K0
微信小程序开发--【APP(Object)函数介绍】(三)
`App()`` 函数用来注册一个小程序。接受一个 Object 参数,其指定小程序的生命周期回调等。
先知先觉
2019/01/28
1.6K0
java object toarray,Object[] toArray()
java.util.LinkedList.toArray()方法以适当的顺序(从第一个元素到最后一个元素)返回包含此列表中所有元素的数组。此方法充当基于数组的API和基于集合的API之间的桥梁。
全栈程序员站长
2022/08/28
6400
c++指针函数的使用——回调函数
1 /* 2 3 函数指针 4 5 函数也是有地址的 6 7 所谓函数指针,就是指向函数的指针,函数指针也是一个变量,可以指向不同的函数。同时通过函数指针可以调用其指向函数,从而使函数的调用更加灵活。 8 9 函数指针的用途 10 11 12 13 14 */ 15 16 #include<iostream> 17 using namespace std; 18 int add(int x, int y); 19 int add(int x, in
拾点阳光
2018/05/10
1.8K0
object.finalize_object的equals方法
finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。
全栈程序员站长
2022/10/02
6590
object.finalize_object的equals方法
自动化测试之Page Object
web自动化的测试最大的挑战之一也许就是随着项目的进展,项目在不停的变化,测试这边也得跟着项目变化来保障项目的顺利进展,在现实的软件项目中,变化是一个常数,而我们只有适应变化,才可以把握变化,但是自动化这边必须要考虑的一个现实问题就是,如何可以更加高效的提高代码的维护量,如何更加完美的来重构编写的代码?另外需要考虑的是,在一个现实的项目中,不管需求是多么的变化,编写的自动化的case以及这些case的代码量多么多,在一个敏捷的项目中,需要在一个版本提交测试后,测试这边务必在有限的时间内给出测试报告,这期间,就包含了自动化的执行,自动化的测试报告以及自动化执行后,对错误的分析(可能是代码错误?可能是功能错误?),和某些需求变化后,对自动化代码的重构,很显然,使用以前的方式很难解决这样的一个现实问题。
无涯WuYa
2018/10/25
8280
自动化测试之Page Object
Object对象
Object对象是JavaScript中两个顶层对象之一,提供方法供直接调用以及原型链继承调用。
WindRunnerMax
2020/08/27
2.3K0
Java 回调函数的使用
回调函数 回调函数是什么鬼, 回调函数干嘛用,回调函数可以怎么用 如果有过android开发经验,经常可以看到一些类似下面的代码 Button Btn1 = (Button)findViewById(R.id.button1);//获取按钮资源 Btn1.setOnClickListener(new Button.OnClickListener(){//创建监听 public void onClick(View v) { String strTmp = "点
一灰灰blog
2018/02/06
2.7K0
Object.keys和Object.values
使用Object.keys()或者Object.values()获取循环变量,渲染的时候根据循环变量获取值。Object.keys()函数返回索引(不仅仅是数字),Object.values()函数返回值。
从入门到进错门
2018/08/21
5330
"reason":"object mapping for [] tried to parse field [] as object, but found a concrete value"
enclosure_infor这个字段的mapping如下,是个nested类型的:
IT云清
2019/01/22
6.6K0
点击加载更多

相似问题

错误: Route.get()需要回调函数,但获得了[object Undefined]

20

错误: Route.get()需要回调函数,但获得了[object String]

127

如何解决此错误: Route.get()需要回调函数,但获得了[object Undefined]

173

Route.post()需要回调函数,但获得了[object Object]

135

nodejs Route.get()需要回调函数,但得到了[object String]

425
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文