Nodejs 500 Not Found This Server

Nodejs 500 Not Found This Server

app.get(’/api’, function(req, res){ // req 参数代表所有发送到服务端的请求 // res 参数代表服务端向浏览器端发送的所有内容 var body = ‘API name : ‘+req.query.name if (req.query.name == ‘loding’) { var user = require(’./app/model/user’); var scr = user.loding(req.body.un,req.body.pw,req.body.at,req.body.tp); res.send(scr); }; });

/user.js/ exports.loding(var username,var password,var verification_code,var type) { if(type == ‘0’){//username return “username”; } else if(type == ‘1’){//email return “email”; } else if(type == ‘2’){//uid return “uid”; } return “worried”; };


3 回复

Node.js 500 Not Found This Server

当你在使用Node.js构建Web应用时,可能会遇到HTTP状态码500,即服务器内部错误。这种情况通常发生在后端代码中存在未处理的异常或错误。下面我们将通过一个具体的例子来探讨这个问题,并提供解决方案。

示例代码分析

首先,我们来看一下你提供的代码片段:

app.get('/api', function(req, res) {
    var body = 'API name : ' + req.query.name;
    
    if (req.query.name == 'loding') {
        var user = require('./app/model/user');
        var scr = user.loding(req.body.un, req.body.pw, req.body.at, req.body.tp);
        res.send(scr);
    }
});

在这个代码片段中,有几个需要注意的地方:

  1. 拼写错误req.query.namereq.body.un, req.body.pw, req.body.at, req.body.tp 应该使用正确的属性名。
  2. 路径问题:确保./app/model/user.js 文件存在并且正确导出。
  3. 函数定义错误exports.loding 函数定义不正确。

修改后的代码

首先,我们修改app.get路由中的错误:

app.get('/api', function(req, res) {
    const name = req.query.name;

    if (name === 'loding') {
        try {
            const user = require('./app/model/user');
            const scr = user.loding(req.query.un, req.query.pw, req.query.at, req.query.tp);
            res.send(scr);
        } catch (error) {
            console.error(error);
            res.status(500).send('Internal Server Error');
        }
    } else {
        res.status(400).send('Invalid API call');
    }
});

然后,我们修改user.js文件中的loding函数定义:

module.exports.loding = function(username, password, verification_code, type) {
    if (type === '0') { // username
        return "username";
    } else if (type === '1') { // email
        return "email";
    } else if (type === '2') { // uid
        return "uid";
    }
    return "worried";
};

解释

  1. 拼写修正:将req.query.name 替换为 name 变量,并且修正了req.query中的属性名。
  2. 错误处理:在app.get路由中添加了try...catch块来捕获可能发生的异常,并返回500状态码。
  3. 函数定义:将exports.loding 修改为 module.exports.loding 并修正了函数参数定义。

通过这些修改,可以避免500错误,并使你的API更加健壮。


这个信息不够具体的吧~

根据你的描述,这个Node.js应用在处理GET请求时遇到了问题,并返回了一个500错误。从代码中可以发现几个潜在的问题:

  1. 字符串拼接问题body变量的赋值中,req.query.name没有正确使用引号。
  2. 路径问题:引入模块的路径使用了单引号而不是反引号。
  3. 函数调用user.loding函数调用中传递的参数应该与定义一致。

以下是修正后的代码示例:

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

app.get('/api', (req, res) => {
    // req 参数代表所有发送到服务端的请求
    // res 参数代表服务端向浏览器端发送的所有内容
    const name = req.query.name;

    let body = `API name: ${name}`;

    if (name === 'loading') {
        const user = require('./app/model/user'); // 确保路径正确
        const result = user.loading(req.body.username, req.body.password, req.body.verification_code, req.body.type);
        res.send(result);
    } else {
        res.send({ error: "Invalid request" });
    }
});

app.listen(3000, () => {
    console.log("Server running on port 3000");
});

对应的user.js文件:

module.exports = {
    loading(username, password, verification_code, type) {
        if (type === '0') { // username
            return "username";
        } else if (type === '1') { // email
            return "email";
        } else if (type === '2') { // uid
            return "uid";
        }
        return "worried";
    }
};

解释

  1. 字符串模板:使用模板字符串 ${name} 而不是旧式拼接方式。
  2. 模块导入:确保使用正确的路径(反引号或双引号)。
  3. 默认响应:当查询参数不匹配时,返回一个默认错误信息。
  4. 函数调用:确保传递给loading函数的参数与定义一致。

这些修改应该能解决你的500错误问题。

回到顶部