所以我对后端相当陌生。无论如何,我想创建一个可以在前端使用的 API,当我尝试向 localhost:5000/elements
Postman 发送请求时遇到的错误是给我 Error: connect ECONNREFUSED 127.0.0.1:5000
如果有人可以提供帮助我会很棒。谢谢
var fs=require('fs');
var data=fs.readFileSync('books.json');
var elements=JSON.parse(data);
const express = require("express");
const app = express();
const cors=require('cors');
const Port = 5000
app.listen(process.env.Port, () => console.log("Server Start at " + Port));
app.use(express.static('public'));
app.use(cors());
app.get('/elements',alldata);
function alldata(request,response)
{
response.send(elements);
}
app.get('/elements/:element/',searchElement);
function searchElement(request,response)
{
var word=request.params.element;
word=word.charAt(0).toUpperCase()+word.slice(1).toLowerCase();
console.log(word);
console.log(elements[word]);
if(elements[word])
{
var reply=elements[word];
}
else
{
var reply={
status:"Not Found"
}
}
console.log(reply.boil);
response.send(reply);
}
答案 0 :(得分:1)
如果您忘记运行 app.listen
,通常会发生此问题。
无论哪种方式,我都建议将 process.env.Port
移到代码底部。它有助于提高可读性,并且会在运行 Express 服务器之前挂载所有代码。
您的 const port = process.env.Port || 5000
也未定义。将其更改为 app.listen
以便您可以获得回退值。也在 allData
中更改它。
然后,定义 searchElement
和 app.get('/elements')
,使它们位于 GET
之前。最后,在您完成所有这些之后,请确保 Postman 中的请求类型为 '+' <- function(e1, e2) {
if (is.character(e1) | is.character(e2)) {
paste0(e1, e2)
} else {
base::`+`(e1, e2)
}
}
。
答案 1 :(得分:1)
Port
与 app.listen(Port, () => console.log("Server Start at " + Port));
无关。
是
public <T extends Event> Class<?> createClass(Class<T> eventClass, Consumer<T> consumer) throws Exception {
ClassPool pool = ClassPool.getDefault();
CtClass generatedClass = pool.makeClass("ClassName");
CtMethod ctMethod = new CtMethod(CtClass.voidType, "MethodName", new CtClass[] { pool.get(eventClass.getName()) }, generatedClass);
ctMethod.insertAfter("consumer.accept($1)"); //TODO: consumer being the consumer passed to the generateClass method
return (Class<?>) generatedClass.toClass(this.getClass().getClassLoader(), this.getClass().getProtectionDomain()).newInstance();
}