使用 Express post 返回字符串

Nik*_*lay 9 javascript node.js

我有这个app.js文件:

let express = require('express')
let app = express()
let Clarifai = require('clarifai')

app.use(express.urlencoded({extended: true}))
app.use(express.static('./public'))
let link = app.post('/route', (req, res) => {
    let linkString = req.body.link
    res.send(JSON.stringify(linkString))
})

app.listen(3000)

const capp = new Clarifai.App({
    apiKey: 'MyAPIKeyIsHere'
   });

predict = capp.models.initModel({id: Clarifai.FOOD_MODEL, version: "aa7f35c01e0642fda5cf400f543e7c40"})
      .then(generalModel => {
        return generalModel.predict(link)
      })
      .then(response => {
        var concepts = response['outputs'][0]['data']['concepts']
        console.log(concepts)
})

console.log('Express app running on port 3000')
console.log(link)
Run Code Online (Sandbox Code Playgroud)

我试图从该app.post方法返回一个字符串,但它返回一个JSON文件。具体我应该怎么做呢?

小智 20

您可以在发送数据之前将内容类型显式设置为 text/html。

res.set('Content-Type', 'text/html');
res.send(JSON.stringify(linkString));
Run Code Online (Sandbox Code Playgroud)


Ole*_*sii 2

你确定那req.body.link是一个string?如果是的话,你可以只传递linkString变量send

 let link = app.post('/route', (req, res) => {
    let linkString = req.body.link
    res.send(linkString)
})
Run Code Online (Sandbox Code Playgroud)