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

Express项目中调用OpenAI API的代码位置与触发方式问询

问题解决方法

1. 解决SyntaxError: Cannot use import statement outside a module错误

你的Express项目默认采用CommonJS模块规范,无法直接使用ES6的import语法,有两种处理方案:

方案一:改用CommonJS的require语法(推荐,无需修改项目配置)

将OpenAI的初始化代码改为以下形式,直接放入api.js路由文件:

const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
    organization: "org-sdfds34dsf",
    apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

方案二:将项目转为ES模块(需修改配置)

  • 在项目根目录的package.json中添加"type": "module"字段
  • 之后可正常使用import语法,但需注意将项目中所有模块引用统一改为ES模块形式(如把require替换为import)

2. 在路由内触发OpenAI API调用

在POST端点的处理函数中,用async/await调用OpenAI接口,以下是完整示例(以聊天接口为例,可根据需求替换为listEngines等其他接口):

// api.js 完整代码示例
const express = require('express');
const router = express.Router();
const { Configuration, OpenAIApi } = require("openai");
// 加载环境变量(需先安装dotenv:npm install dotenv)
require('dotenv').config();

// 初始化OpenAI客户端
const configuration = new Configuration({
    organization: "org-sdfds34dsf",
    apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

// 处理前端POST请求的端点
router.post('/', async (req, res) => {
    try {
        // 获取前端表单传入的prompt
        const userPrompt = req.body.prompt;

        // 调用OpenAI聊天接口
        const response = await openai.createChatCompletion({
            model: "gpt-3.5-turbo",
            messages: [{ role: "user", content: userPrompt }],
        });

        // 将结果返回给前端
        res.json({
            msg: "请求成功",
            content: response.data.choices[0].message.content
        });
    } catch (error) {
        // 错误处理
        res.status(500).json({
            msg: "请求失败",
            error: error.message
        });
    }
});

module.exports = router;

注意事项

  • 确保通过dotenv管理环境变量,避免直接硬编码API密钥
  • OpenAI API调用为异步操作,路由处理函数必须标记为async,并使用await等待响应
  • 可根据需求替换OpenAI的API接口,具体参数参考官方文档要求

内容的提问来源于stack exchange,提问作者Ron I

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:50:44