node.js - 找不到模块 : Can't resolve 'dns' in pg/lib

标签 node.js reactjs postgresql sequelize.js

我创建了 react-app,还安装了 sequelize 和 pg。但是当我执行 npm start 时,出现以下错误 -


./node_modules/pg/lib/connection-parameters.js

未找到模块:无法解析“/Users/vedant/Web Dev/device_psql/node_modules/pg/lib”中的“dns”

这是 App.js 文件 -


import React, { Component } from 'react';
const Sequelize = require('sequelize');
const sequelize = new Sequelize('postgres', 'postgres', 'password', {
host: 'localhost',
dialect: 'postgres',

pool: {
  max: 5,
  min: 0,
  acquire: 30000,
  idle: 10000
},

// http://docs.sequelizejs.com/manual/tutorial/querying.html#operators
operatorsAliases: false
});

class App extends Component {
render() {
  return (
    <div >
      <p>Test</p>
    </div>
  );
}
}

export default App;

此外,在 package.json 文件中,我有 sequelize 和 pg。可能是什么问题呢?我尝试删除 node_modules 文件夹并执行 npm install,但没有成功。

提前致谢。

最佳答案

发生这种情况是因为您的一个包使用了 JavaScript promises,它依赖于 dns 模块,该模块仅在 Node.js(服务器端)中可用,当您的代码在浏览器。虽然实现依赖于它,但它不需要它工作,因此您可以通过伪造 dns 模块的存在来解决问题。

为此,请按照下列步骤操作:

创建一个文件夹/src/mock/dns。在此文件夹中,创建一个文件 index.js 包含:

module.exports = {}; 
module.exports.default = {};

同样在此文件夹中,创建一个文件 package.json 包含:

{ 
  "name": "dns", 
  "version": "3.1.0", 
  "private": true 
}

在您的根 package.json 中,将以下行添加到 dependencies:

"dns": "file:./src/mock/dns"

运行 npm install 来安装假的依赖项,然后使用 npm start 重启你的 React 项目。

关于node.js - 找不到模块 : Can't resolve 'dns' in pg/lib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51541561/

相关文章:

javascript - nodejs 数据结构在设计上是线程安全的吗?

Javascript 异步回调 hell

reactjs - Gatsby 插件图像 : Missing image prop after updating Gatsby Client

javascript - 具有属性的 JSX 动态标签

postgresql - 如何从主机访问 docker postgres db

postgresql - Ormlite 和 PostgreSQL - 使用自定义持久器插入文本数组时出错

ios - 基于 Cognito ID 的 S3 文件夹访问的 IAM 策略

node.js - 如何从 Buffer.from 获得与 fs.readFile 相同的输出?

reactjs - React native 中的未知模块 "Firebase"

Django 使用不正确的序列起始值为 Postgresql 创建测试数据库