Node.js TypeError: res.json is not a function
Node.js TypeError: res.json is not a function
我正在尝试使用 Swagger 和 Node.js 创建一个简单的 hello world 应用程序,当我调用 GET 时打印出 "Hello, " 但我收到错误:TypeError: res.json 不是函数 。使用 Swagger 编辑器,我创建了以下 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 服务器并创建了一个 hello_world.js 控制器。当我尝试通过调用 http://localhost:8081/hello?name=victory 使用 Swagger UI 测试代码时,我看到错误: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 的新手,所以我不确定为什么会收到错误或解决错误的最佳方法。如果您能给我任何帮助,我们将不胜感激。
更新:事实证明 res.end(greeting) 有效。谁能解释为什么 res.json 和 res.send 没有?
json
函数被 express.js 添加到响应对象,但是 swagger 生成器生成的代码使用 connect.js(不是 express)。
Express 建立在 connect 之上,如果您想要 express 的功能,您可以轻松地在 swagger 生成器生成的代码中使用 express 代替 connect。在 index.js
中找到表示 const app = require('connect')();
的行,并将 'connect' 替换为 'express'。
使用这个
utils.writeJson(res, "sucess").end();
我正在尝试使用 Swagger 和 Node.js 创建一个简单的 hello world 应用程序,当我调用 GET 时打印出 "Hello, " 但我收到错误:TypeError: res.json 不是函数 。使用 Swagger 编辑器,我创建了以下 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 服务器并创建了一个 hello_world.js 控制器。当我尝试通过调用 http://localhost:8081/hello?name=victory 使用 Swagger UI 测试代码时,我看到错误: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 的新手,所以我不确定为什么会收到错误或解决错误的最佳方法。如果您能给我任何帮助,我们将不胜感激。
更新:事实证明 res.end(greeting) 有效。谁能解释为什么 res.json 和 res.send 没有?
json
函数被 express.js 添加到响应对象,但是 swagger 生成器生成的代码使用 connect.js(不是 express)。
Express 建立在 connect 之上,如果您想要 express 的功能,您可以轻松地在 swagger 生成器生成的代码中使用 express 代替 connect。在 index.js
中找到表示 const app = require('connect')();
的行,并将 'connect' 替换为 'express'。
使用这个
utils.writeJson(res, "sucess").end();