Node.js TypeError:res.json不是一个函数

我试图创build一个简单的Hello World应用程序使用Swagger和Node.js打印出“你好”,当我打电话给GET,但我得到的错误: TypeError:res.json不是一个函数 。 使用Swagger编辑器,我创build了以下yaml api:

--- swagger: "2.0" info: version: "1.0.0" title: "Hello World" paths: /hello: get: x-swagger-router-controller: "hello_world" description: "Returns 'Hello' to the caller" operationId: "hello" parameters: - name: "name" in: "query" description: "The name of the person to whom to say hello" required: false type: "string" responses: 200: description: "Returns greeting" schema: type: "string" title: "HelloWorldResponse" 400: description: "Invalid characters in \"user\" were provided" definitions: {} 

我使用了Swagger编辑器来生成一个node.js服务器,并创build了一个hello_world.js控制器。 当我尝试使用Swagger UI通过调用http:// localhost:8081 / hello?name = victory来testing代码时,发现错误:TypeError:res.json不是函数。 这是我的node.js代码:

 'use strict'; var util = require('util'); module.exports = { hello: hello }; function hello(req, res) { // variables defined in the Swagger document can be referenced using req.swagger.params.{parameter_name} var name = req.swagger.params.name.value || 'stranger'; var greeting = util.format('Hello, %s!', name); // this sends back a JSON response which is a single string res.json(greeting); //ERRORS OUT HERE } 

我是新来的Swagger和Node.js,所以我不知道为什么我得到一个错误或最好的方式去解决它。 任何帮助,你可以给我,将不胜感激。

更新:事实certificate,res.end(问候)的作品。 任何人都可以解释为什么res.json和res.send不?

json函数被express.js添加到响应对象,但是swagger生成器生成使用connect.js(不表示)的代码。

Express是build立在连接之上的,如果你需要快速的function,你可以很容易的使用express来代替swagger生成器生成的代码中的连接。 在index.js中find表示const app = require('connect')(); ,并用'express'replace'connect'。