为什么我在这段代码中遇到语法错误?

问题描述 投票:0回答:1

我正在学习nodejs,并做了一些在内存中创建数据库的练习,一切顺利。但是,当我改用 Postgres + Neon 时,我遇到了一些麻烦。

这是我的

server.js
文件:

import {fastify} from 'fastify'
import { DatabasePostgres } from './database-postgres.js'

const server = fastify()

const database = new DatabasePostgres()


server.post('/videos', async (request, reply) => {

    const { title, description, duration} = request.body

    await database.create({
        title,
        description,
        duration,
    })

    console.log(database.list())

    return reply.status(201).send()
})

server.get('/videos', async (request) => {
    const search = request.query.search
    const videos = await database.list(search)

    return videos
})

server.put('/videos/:id', (request, reply) => {
    const videoId = request.params.id
    const { title, description, duration } = request.body

    database.update(videoId, {
        title,
        description,
        duration,
    })

    return reply.status(204).send()
})

server.delete('/videos/:id', (request, reply) => {
    const videoId = request.params.id

    database.delete(videoId)

    return reply.status(204).send()
})

server.listen ({
   port: process.env.PORT ?? 3333,
})

这是我的

app.js
:

import 'dotenv/config'
import postgres from 'postgres'

const postgres = require('postgres');
require('dotenv').config();

let { PGHOST, PGDATABASE, PGUSER, PGPASSWORD, ENDPOINT_ID } = process.env;
PGPASSWORD = decodeURIComponent(PGPASSWORD);

export const sql = postgres({
  host: PGHOST,
  database: PGDATABASE,
  username: PGUSER,
  password: PGPASSWORD,
  port: 5432,
  ssl: 'require',
  connection: {
    options: `project=${ENDPOINT_ID}`,
  },
});

async function getPgVersion() {
  const result = await sql`select version()`;
  console.log(result);
}

getPgVersion();

这是错误:

文件:///D:/nodejs/app.js:4
const postgres = require('postgres');
^

语法错误:标识符“postgres”已被声明

我希望有人能帮助我。谢谢。

我正在学习在 Youtube 上观看视频,但是我的 NodeJS 版本不同,Neon 也有更新,所以情况有点不同。

node.js postgresql neon
1个回答
0
投票

import
require
做同样的事情。

这意味着,您只需要其中一个。

为了进一步详细说明,请选择仅使用

import
或仅使用
require
,因为它们用于“加载”要使用的库。

如果您只想使用

import
,请确保您的 package.json 中有
"type": "module"

例如:在你的 package.json 文件中:

{
  "type": "module",
  // your other config
}

如果您没有 package.json 文件,请在根文件夹中运行

npm init
并按照说明进行操作。文件将被创建

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.