【问题标题】:server error message [ERR_INVALID_ARG_TYPE]:服务器错误消息 [ERR_INVALID_ARG_TYPE]:
【发布时间】:2021-04-16 03:50:45
【问题描述】:

我在服务器上收到一条错误消息: TypeError [ERR_INVALID_ARG_TYPE]:“key”参数必须是字符串类型或 ArrayBuffer、Buffer、TypedArray、DataView、KeyObject 或 CryptoKey 的实例。

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
const express = require('express');
 const bodyParser = require('body-parser');
 const bcrypt = require('bcrypt-nodejs');
 const cors = require('cors');
 const knex = require('knex');
const register = require('./controllers/register');
const signin = require('./controllers/signin');
const profile = require('./controllers/profile');
const image = require('./controllers/image');

 const db = knex({
    client: 'pg',
    connection: {
      host : '127.0.0.1',
      user : 'postgres',
      password : '',
      database : 'smart-brain'
    }
  });

 const app = express();

 app.use(cors());
 app.use(bodyParser.json());
 

app.get('/', (req, res)=> {res.send(database.users) })

 app.post('/signin',  signin.handleSignin(db,bcrypt))

 app.post('/register', (req, res) => {register.handleRegister(req, res, db, bcrypt) })

 app.get('/profile/:id', (req, res)=> {profile.handleProfileGet(req, res, db)})

 app.put('/image', (req, res) => {image.handleImage(req, res, db)})

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

【问题讨论】:

  • 这和reactjs标签有什么关系?
  • 我正在使用 react 来构建我的项目
  • 检查您的路线返回声明。确保 res.send(variable) 或 res.json(variable) 不为空或未定义。
  • 我查看了浏览器中的错误,它说我的提取不起作用。

标签: node.js reactjs


【解决方案1】:

听起来像是数据库凭据问题。看起来您有“”作为密码,并且您正在使用 postgres 作为您的数据库。您可能需要重新检查您的超级用户(postgres)是否没有密码或reset 它。

您还可以检查您是否在应用程序中编写了任何有条件的 process.env USER 和 PASSWORD 变量。如果有,则必须在 .env 文件中分配这些变量。

【讨论】:

    【解决方案2】:

    这个问题可能与数据库配置文件有关。对于我来说,我从 config.xml 错误地导入了密码。必须在我的密码的config.get() 方法中添加一个toString() 方法。A screenshot of what my knexfile looks like after adding toString() to my password

    【讨论】:

    • 欢迎您,感谢您的见解。以下是您可能不知道的发布规则: 所有代码、数据和错误消息都必须以纯文本而不是图像的形式嵌入。图像中的文本不能复制粘贴到编辑器或搜索引擎中。此外,图像中的文本可能难以阅读,尤其是在移动设备上,并且会消耗过多的移动数据。此外,由于未嵌入“解决 OP 问题所需的确切代码”,因此它被视为评论,而不是答案。请edit相应地避免被SO删除。有关发布指南的更多信息,请访问 StackOverflow.com/help
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多