我正在尝试使用 Swagger 和 Node.js 创建一个简单的 hello world 应用程序,当我调用 GET 时打印出“Hello”,但出现错误:TypeError: res.json is not a function。使用 Swagger Editor,我创建了以下 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 is not a function。这是我的 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 没有?