账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    返回空数据,多个app.get()
    26
    0

    我必须在/deleteUser 之前重新定义一个Express的类,然后才能确保下面读取的值不为空值。
    全部代码如下

    /*server.js*/
    var express = require('express');    // 引入express框架
    var app = express();
    var fs = require('fs');     // 引入文件模块
    
    // 添加用户的数据
    var user = {
        "user4": {
            "name":"mohit",
            "password":"password4",
            "profession":"teacher",
            "id":4
        }
    }
    
    // 创建获取用户列表路由
    app.get('/listUsers', (req, res) => {
       fs.readFile( __dirname + "/" + "users.json", 'utf8', (err, data) => {
           console.log( data );
           res.end( data );
       });
    })
    
    // 创建添加用户路由请求
    app.get('/addUser', (req, res) => {
        // 读取已存在的数据
        fs.readFile( __dirname + "/" + "users.json", "utf8", (err, data) => {
            if (err) {
                return console.log(err);
            };
    
            data = JSON.parse(data);    // 将传入的JSON转换为对象格式
            data["user4"] = user["user4"];    
            console.log(data);
            res.end( JSON.stringify(data) );    // 将对象转换成为JSON格式
        });
    });
    
    // 添加显示用户详情路由
    app.get('/:id', (req, res) => {
        // 首先读取已存在的用户
        fs.readFile( __dirname + '/' + "users.json", 'utf8', (err, data) => {
            data = JSON.parse( data );
            var user = data["user" + req.params.id]    // 获取get得到的值
            console.log( user );
            res.end( JSON.stringify(user) );
        })
    })
    
    
    var app = express();
    
    
    // 删除用户
    app.get('/deleteUser', (req, res) => {
    
       // 首先获取用户信息
       fs.readFile( __dirname + "/" + "users.json", 'utf8', (err, data) => {
           data = JSON.parse( data );
           delete data["user" + 2];
           
           console.log( data );
           res.end( JSON.stringify(data));
       });
    })
    
    // 启动server
    var server = app.listen(1937, () => {
        console.log(server.address());
    })
    

    删除用户之前的

    var app = express();

    必须存在,去掉就会全部返回undefined,读不到data数据。
    为什么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 染指徒留 普通会员 1楼

      在JavaScript中,你可以使用Promise对象或async/await关键字来返回一个空数据。以下是一个使用Promise的例子:

      ```javascript function getData() { return new Promise((resolve, reject) => { // 使用app.get()发起GET请求到你的API app.get('https://api.example.com/data') .then(response => { // 如果请求成功,返回响应数据 resolve(response.data); }) .catch(error => { // 如果请求失败,返回一个错误信息 reject(error); }); }); }

      // 使用Promise getData() .then(data => { console.log(data); // 输出:null }) .catch(error => { console.error(error); // 输出:错误信息 }); ```

      在这个例子中,我们首先创建了一个Promise,该Promise包含两个子函数:getDatacatchgetData函数使用app.get()发起GET请求到API,如果请求成功,它会调用resolve函数并返回响应数据;如果请求失败,它会调用reject函数并返回一个错误信息。然后,我们使用then方法来处理Promise的解决方案,如果Promise的状态为resolve,那么我们打印出处理后的数据;如果Promise的状态为reject,那么我们打印出错误信息。

      catch方法用于处理Promise的拒绝情况,如果Promise的状态为reject,那么它会调用reject函数并返回一个错误信息。在catch方法中,我们可以捕获并处理任何未处理的错误,例如网络错误、服务器错误等。

      注意:在实际应用中,你应该将app.get()替换为你的实际API URL,以及https://api.example.com/data替换为你的API的实际数据URL。此外,你应该确保你的API提供了一个返回数据的API响应,例如JSON或XML。如果你的API没有返回数据,你可以将resolvereject方法中的数据设置为一个空对象或null,以表示没有返回数据。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部