You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js连接本地PostgreSQL时import语句使用错误求助

解决Node.js中"Cannot use import statement outside a module"错误

以下是针对你的场景的排查和解决步骤:

1. 确认项目模块类型配置

  • 确保项目根目录存在package.json,没有的话执行npm init -y生成
  • 检查package.json中的type字段:
    • 若使用ES模块语法(import/export),必须添加"type": "module"
    • 若使用CommonJS语法(require/module.exports),移除"type": "module"字段,或显式设置为"type": "commonjs"

    注意:整个项目的模块语法要统一,不要在部分文件用ES模块,部分用CommonJS,除非通过文件后缀区分(见下一步)

2. 检查文件后缀匹配

  • 若未在package.json设置type字段:
    • 使用ES模块的文件需改为.mjs后缀
    • 使用CommonJS的文件需改为.cjs后缀或保留.js
  • 若已设置"type": "module",所有.js文件默认按ES模块处理,如需用CommonJS,文件需改为.cjs

3. 修正require语法的细节错误

如果你已经把import改成require,检查以下点:

  • 原ES模块的导入语法:import { Pool } from 'pg' 需改为 const { Pool } = require('pg'),确保大括号、变量名、包名拼写正确
  • 原ES模块的导出语法:export default pool 需改为 module.exports = pool;export const getUsers = () => {} 需改为 exports.getUsers = () => {}
  • 本地文件引用需添加正确的相对路径,比如require('./db/index.js')(路径层级要对应你的项目结构)

4. 清除缓存并重启服务

  • 修改配置或文件后,彻底关闭Node进程再重新启动,避免缓存导致的配置不生效
  • 若使用nodemon等热重载工具,需重启nodemon进程

内容的提问来源于stack exchange,提问作者Michael Hamilton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:03:13