Javascript 在node js中创建节点服务器并设置错误处理程序

Javascript 在node js中创建节点服务器并设置错误处理程序,javascript,node.js,Javascript,Node.js,我想创建一个返回http.Server和 在HTTP响应的主体中提供文件testText.txt的文本 对“/”路由发出GET请求时。 解析“段落”参数的请求。 该参数必须是整数,并表示 您希望从测试文本开始接收的段落。 返回响应正文中的适当内容。 如果发生任何错误,请返回500错误。 如果提供的路由未知,则返回404错误 这是我到目前为止所拥有的 首先,欢迎来到节点世界 1)使用res中的文件 请参考这个。它会帮助你的 2)如果出现任何错误,则错误代码为500 res.status(500).

我想创建一个返回http.Server和 在HTTP响应的主体中提供文件testText.txt的文本 对“/”路由发出GET请求时。 解析“段落”参数的请求。 该参数必须是整数,并表示 您希望从测试文本开始接收的段落。 返回响应正文中的适当内容。 如果发生任何错误,请返回500错误。 如果提供的路由未知,则返回404错误

这是我到目前为止所拥有的
首先,欢迎来到节点世界

1)使用res中的文件

请参考这个。它会帮助你的

2)如果出现任何错误,则错误代码为500

res.status(500).json({success: 0, error 'Something went wrong'});
3)如果路线不匹配,用于手柄404

var createError = require('http-errors'); 

//Install via this command-> npm i http-errors --save

app.use(function (req, res, next) {
  next(createError(404));
});

正如您在问题中提到的,在函数中使用err对象,如下所示:

function makeServer() {
    return http.createServer(function(req, res){
    if(req.url === '/'){  
        fs.readFile('testText.txt', function(err , para){
            if (err) {
               res.status(500).send({
                   message: "Something went wrong"
               })
               // error handling 
            } else  {
            console.log("Data", para);
            res.end();
            }
        });
    console.log("The end");
    }
}

我希望能做这样的事

var express = require('express');
var app = express();

//Handle 404 here
app.use(function (req, res, next) {
  res.status(404).send({
               message: "Page Not Found"
           }) 
  });
将GET请求注入默认路由

app.get('/', (req, res) => {          
    // **modify your existing code here**
    fs.readFile('testText.txt', (e, para) => {
        if (e) {
         res.status(500).send({
               message: "Something went wrong"
           }) 
         }
        res.send(para);
    });
});

app.listen(5555);

您能添加从上述代码中得到的错误吗?您如何在请求中传递“段落”,我无法正确理解testText.txt包含paragraph@Sohan首先,我们读取testText.txt,然后解析“段落”请求 parameter@Jhon你为什么不使用express JS?那么我将使用express Sir?,你能为我的问题提供完整答案吗,谢谢。但我正在使用和在线浏览器编译器Sir@JhonCull最佳实践是与postman一起使用real node API。其他开发者也分享了答案,所以我不认为我需要分享答案。你可以用它。如果您有任何其他疑问,请告诉我。:)我们在哪里解析段落参数?@JhonCull请检查更新的答案,我修改了它,有500个错误,您可以使用响应对象根据错误共享状态代码和消息。404路由错误?例如,如果有人试图用/abc或/error之类的东西调用路由,那么您必须创建一个新的路由请求,并且如应答中所述,使用带有.status(404)和.send()的响应对象message@SohantestText.txt包含文本段落列表,先生,您能提供一个404示例吗?先生,他没有使用express。!为了便于注意,使用状态代码404代替400。更新错误代码,我在上面的评论中询问了为什么他不使用express JS。如果有适当的例子,他可以使用。我们如何处理“该参数必须是一个整数,并表示从测试文本开始您希望接收的段落数。”?先生,这就是你的逻辑
app.get('/', (req, res) => {          
    // **modify your existing code here**
    fs.readFile('testText.txt', (e, para) => {
        if (e) {
         res.status(500).send({
               message: "Something went wrong"
           }) 
         }
        res.send(para);
    });
});

app.listen(5555);