, поэтому я создаю несколько простых проектов узлов и делаю некоторые запросы, используя GOT , поскольку исходная библиотека запросов для узла прекращена, но эта странность продолжает происходить и вызывает все, что угодно перед asyn c функция как функция.
ниже - это код, который я запускаю
let express = require("express")
let app = express()
let bodyparser = require("body-parser")
const got = require('got');
app.set("view engine", "ejs")
app.get("/search", function(req, res){
let query = req.query.pesq
let url = "https://www.omdbapi.com/?s=" + query + "&apikey=thewdb"
(async () => {
try {
const response = got(url);
data = JSON.parse(response.body);
console.log("fine here")
res.render("search", {data: data})
//=> '<!doctype html> ...'
} catch (error) {
console.log(error.code);
//=> 'Internal server error ...'
}
})
})
app.listen(3000, function(){
console.log("Server has started!")
})
И это ошибка, которую я получаю от него
TypeError: "&apikey=thewdb" is not a function
at /workspace/Bootcamp/MoviaApp/index.js:11:2
at Layer.handle [as handle_request] (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/layer.js:95:5)
at next (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/layer.js:95:5)
at /workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/index.js:335:12)
at next (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/index.js:275:10)
at expressInit (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/middleware/init.js:40:5)
at Layer.handle [as handle_request] (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/layer.js:95:5)
Я пытаюсь найти выяснить, почему строка перед функцией asyn c вызывается как функция, как показывает ошибка. Я попытался добавить console.log("check")
после let url
и получил еще одну ошибку:
TypeError: console.log(...) is not a function
at /workspace/Bootcamp/MoviaApp/index.js:12:2
at Layer.handle [as handle_request] (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/layer.js:95:5)
at next (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/layer.js:95:5)
at /workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/index.js:335:12)
at next (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/index.js:275:10)
at expressInit (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/middleware/init.js:40:5)
at Layer.handle [as handle_request] (/workspace/Bootcamp/MoviaApp/node_modules/express/lib/router/layer.js:95:5)
Однако я понятия не имею, почему у него такое странное поведение при вызове линии раньше, вероятно, это что-то очень просто, но я не могу узнать. извините, если на этот вопрос уже был дан ответ, но я не могу найти ответ.
Обновление: добавлено await
перед функцией got(url)
и по-прежнему возвращается тот же результат