向邮递员发送请求时出错

时间:2021-03-14 00:41:35

标签: javascript node.js express

所以我对后端相当陌生。无论如何,我想创建一个可以在前端使用的 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);

}

2 个答案:

答案 0 :(得分:1)

如果您忘记运行 app.listen,通常会发生此问题。

无论哪种方式,我都建议将 process.env.Port 移到代码底部。它有助于提高可读性,并且会在运行 Express 服务器之前挂载所有代码。

您的 const port = process.env.Port || 5000 也未定义。将其更改为 app.listen 以便您可以获得回退值。也在 allData 中更改它。

然后,定义 searchElementapp.get('/elements'),使它们位于 GET 之前。最后,在您完成所有这些之后,请确保 Postman 中的请求类型为 '+' <- function(e1, e2) { if (is.character(e1) | is.character(e2)) { paste0(e1, e2) } else { base::`+`(e1, e2) } }

答案 1 :(得分:1)

Portapp.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();
}