node.js,mongodb,浏览器控制台报错GET http://localhost:3000/users/63fdc6ed5ece35087ded4a9b 400 (Bad Request)

问题基本情况:
博客系统,服务器已启动成功,数据库连接成功,powershell没有报错,compass里也连接成功,可以正常显示数据库内容
当在chrome浏览器地址栏输入 http://localhost:3000/admin/index.html 回车,页面能正常显示内容,但控制台console那里显示 Failed to load resource: the server responded with a status of 404 :

img

刷新页面后,此报错自动消失了

接着该页面输入正确的用户名和密码后点击登录,能成功登录账户

浏览器控制台报错:

img

报错内容是GET http://localhost:3000/users/63fdc6ed5ece35087ded4a9b 400 (Bad Request)

浏览器network里显示:

img

img

报错内容为 {"message":""value" must be of type object"}

点击控制台里的 common.js:26 ,对应的代码内容为:

// 向服务器端发送请求 索要登录用户信息
$.ajax({
  type: 'get',
  url: '/users/' + userId,
  success: function (response) {
    $('.avatar').attr('src', response.avatar)
    $('.profile.name').html(response.nickName)
  }
});

服务端代码:

const express = require('express');
const mongoose = require('mongoose');
const path = require('path');
var session = require('express-session');
const app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: false
}));
mongoose.set('strictQuery', true);
mongoose.connect('mongodb://root:root@localhost:27017/alibaixiu?authSource=admin', { useNewUrlParser: true })
    .then(() => console.log('数据库连接成功'))
    .catch(() => console.log('数据库连接失败'));
require('./routes')(app);
app.listen(3000, () => console.log('服务器启动成功'));

尝试过的努力:
搜索过网上提供的解决办法,有的说报错404是因为服务器端漏写了客户端里的某个请求地址,但没有说漏了哪个地址,且应该在服务端的哪个位置写上漏掉的地址;有的说需要加上'Content-Type': 'application/json'就可以解决400 (Bad Request)的报错,但没有说要加在哪个位置。

需要解决的问题:
1、报错404,漏写了哪个地址,且应该在服务端的哪个位置写上漏掉的地址?
2、报错400 (Bad Request),'Content-Type': 'application/json'应该加在哪个位置?
3、如果以上两个方法都解决不了问题,请问还有什么方法可以解决?恳请展示代码说明,谢谢~

可以尝试修改客户端代码如下:

$.ajax({
  type: 'get',
  url: '/users/' + userId,
  contentType: 'application/json',
  success: function (response) {
    $('.avatar').attr('src', response.avatar)
    $('.profile.name').html(response.nickName)
  }
});

在服务器端代码中添加路由:

app.get('/users/:userId', (req, res) => {
  const userId = req.params.userId;
  // 从数据库中获取 userId 对应的数据
  // ...
  // 返回数据
  res.json({ avatar: '...', nickName: '...' });
});

我这里有一篇关于这个的文章,链接为:nodejs学习-4:nodejs连接mongodb和相关操作
也不知道能不能帮助到题主

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^