У меня есть этот файл 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.info(concepts)
})
console.info('Express app running on port 3000')
console.info(link)
Я пытаюсь вернуть строку из метода app.post, но он возвращает файл JSON. Как мне это сделать?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы уверены, что req.body.link - это string? Если да, вы можете просто передать переменную linkString в send:
let link = app.post('/route', (req, res) => {
let linkString = req.body.link
res.send(linkString)
})
Перед отправкой данных можно явно указать тип содержимого text / html.
res.set('Content-Type', 'text/html');
res.send(JSON.stringify(linkString));
Да, req.body.link вернет текст, который я ввел в него. Я попытался просто поместить linkString в res.send, но он возвращает объект JSON.