nodejs 나머지 API 배포

WBOY
풀어 주다: 2023-05-11 14:28:06
원래의
561명이 탐색했습니다.

오늘날 인터넷 시대에는 효율적이고 빠른 백엔드 서비스 구축이 필수입니다. NodeJS는 이 분야에서 탁월하여 효율적인 웹 서비스를 빠르고 쉽게 구축할 수 있도록 해줍니다. REST API는 오늘날 인터넷 업계에서 웹 서비스를 구축하는 데 매우 널리 사용되는 방법이기도 합니다. 코드 양을 크게 줄이고 포트 처리를 단순화하며 많은 이점을 제공합니다. 이 기사에서는 NodeJS 및 ExpressJS를 사용하여 REST API를 빠르게 배포하는 방법을 알아봅니다.

환경 준비

시작하기 전에 환경을 설정해야 합니다.

  1. 텍스트 편집기(VS Code 권장)
  2. Node.js(공식 웹사이트에서 다운로드 및 설치)
  3. Postman(테스트 도구) , 공식 웹 사이트에서 다운로드 가능) 및 설치)

프로젝트 초기화

먼저 터미널을 열고 새 프로젝트 디렉토리를 생성합니다:

mkdir project-name
cd project-name
로그인 후 복사

그런 다음 npm init를 사용하여 새 패키지 만들기: npm init 创建一个新的 package:

npm init
로그인 후 복사

npm init 将会要求你输入一些基本信息,例如作者名,项目名称,版本等。一些默认的设置是可以直接使用的,只需修改一些你自己的信息即可。

接下来,我们将需要安装以下几个依赖:

npm install express body-parser cors —save
로그인 후 복사
  • Express是我们用于构建REST API的框架。
  • body-parser是一个中间件,用于解析POST请求和JSON数据。
  • Cors是一个插件,允许Web应用程序在另一个域上启用 CORS(跨域资源共享)

创建服务

现在,让我们来创建一个名为app.js的新文件,这将是我们的 NodeJS REST API 服务的起点。我们可以借助 Express 框架来构建这个服务:

const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const app = express()

const port = 3000

app.use(cors())

app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())

app.listen(port, () => {
  console.log(`Server running on port ${port}`)
})
로그인 후 복사

在上面的代码段中,我们导入 Express,body-parser 和 cors。 我们还使用了监听端口 3000 的app.listen()方法。 最后,我们通过app.use()方法启用 cors 和 body-parser 的中间件。

创建路由

下一步将是创建路由,这是实现我们 REST API 服务所必需的。路由可以理解为请求进入服务后,服务应该如何响应的规则集合。

我们可以在项目根目录下创建一个routes文件夹,并在其中创建index.js文件,并添加以下内容:

const express = require('express')
const router = express.Router()

router.get('/posts', (req, res) => {
  res.status(200).send('All posts')
})

module.exports = router;
로그인 후 복사

在上述代码中,我们创建了一个新的路由,并在该路由上创建了一个/posts的GET请求。该请求将返回一个状态码为200和文本“All posts”。

接下来,我们将启用该路由。我们回到app.js文件并添加以下内容:

const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const app = express()

const postRoutes = require('./routes/index');
const port = 3000

app.use(cors())

app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())

app.use('/api', postRoutes);

app.listen(port, () => {
  console.log(`Server running on port ${port}`)
})
로그인 후 복사

在上述代码中,我们导入了定义在routes/index.js的路由,并使用app.use('/api', postRoutes)方法将路由应用于我们的 REST API 服务中。 然后,在localhost:3000/api/posts呼叫GET请求时,它应该返回“All posts”。

数据库连接

当然,在真正的项目中我们需要请求和获取的数据是会被放在数据库中存储的,所以我们需要在此处讨论如何使用NodeJS连接数据库。

我们将使用 MongoDB 作为我们的数据库,同时使用mongoose来连接它。我们可以在命令行中运行以下命令来安装 mongoose:

npm install mongoose --save
로그인 후 복사

接下来,让我们来创建一个models文件夹,并在其中添加一个新文件post.js,以描述一个简单的数据模型。

const mongoose = require('mongoose');

const postSchema = new mongoose.Schema({
  title: { type: String, required: true },
  content: { type: String, required: true },
  author: { type: String, required: true },
}, { timestamps: true });

module.exports = mongoose.model('Post', postSchema);
로그인 후 복사

在上面的代码中,我们定义了一个名为Post的模型,以定义我们的数据,并且在创建它时使用了 timestamps 选项。

现在,我们要使用 Mongoose 连接本地 MongoDB 数据库。可以在app.js文件中添加以下内容:

const mongoose = require('mongoose');
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')

const postRoutes = require('./routes/index');
const PORT = process.env.PORT || 3000;

const app = express();

app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

mongoose.connect('mongodb://localhost/posts', { useNewUrlParser: true, useUnifiedTopology: true });
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once('open', function() {
    console.log('Successfully connected to MongoDB!');
})

app.use('/api', postRoutes);

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});
로그인 후 복사

以上代码的数据库URL设置为mongodb://localhost/posts,这表示数据库名为posts,并位于我们的本地MongoDB实例中。我们还使用了Mongoose端口的默认端口(27017)。需要注意的是,Mongoose已经被弃用的代码已经修复,所以我们必须使用useUnifiedTopology选项。

实现路由

我们已经在服务器中设置了路由,并且可以成功连接我们的数据库。接下来,我们要配置更多的路由,以处理 POST 请求并从我们的数据库中获取数据。

首先,我们在我们的路由中添加一个新的 POST 请求,并从请求体中提取出标题、内容、作者以及其他必要的信息。 并将数据存储到数据库中。在这里,我们将假设在数据库中名为“posts”,并且通过Post模型本身来创建一个MongoDB文档。

const express = require('express');
const router = express.Router();
const Post = require('../models/post.js');

router.get('/posts', (req, res) => {
  Post.find()
  .then(data => res.json(data))
  .catch(err => res.status(400).json(`Error: ${err}`));
});

router.get('/posts/:id', (req, res) => {
  Post.findById(req.params.id)
  .then(data => res.json(data))
  .catch(err => res.status(400).json(`Error: ${err}`));
});

router.post('/posts', (req, res) => {
  const newPost = new Post(req.body);
  newPost.save()
  .then(() => res.json('Post added!'))
  .catch(err => res.status(400).json(`Error: ${err}`));
});

module.exports = router;
로그인 후 복사

顶部的代码中,我们首先导入了我们的模型文件,并创建所有需要的路由GET或POST请求。 GET请求使用Post.find()从MongoDB数据库中提取所有数据库条目,而我们的POST请求使用newPost.save()rrreee

npm init는 작성자 이름, 프로젝트 이름, 버전 등과 같은 몇 가지 기본 정보를 입력하라는 메시지를 표시합니다. 일부 기본 설정은 직접 사용할 수 있으며 일부 정보를 수정하면 됩니다. 🎜🎜다음으로 다음 종속성을 설치해야 합니다. 🎜rrreee
    🎜Express는 REST API를 구축하는 데 사용하는 프레임워크입니다. 🎜🎜body-parser는 POST 요청과 JSON 데이터를 구문 분석하기 위한 미들웨어입니다. 🎜🎜Cors는 웹 애플리케이션이 다른 도메인에서 CORS(Cross-Origin Resource Sharing)를 활성화할 수 있게 해주는 플러그인입니다. 🎜
🎜서비스 만들기🎜🎜이제 app.js는 NodeJS REST API 서비스의 시작점이 됩니다. Express 프레임워크의 도움으로 이 서비스를 구축할 수 있습니다. 🎜rrreee🎜 위 코드 조각에서는 Express, body-parser 및 cors를 가져옵니다. 또한 포트 3000에서 수신 대기하는 <code>app.listen() 메서드를 사용합니다. 마지막으로 app.use() 메서드를 통해 cors 및 body-parser 미들웨어를 활성화합니다. 🎜🎜경로 만들기🎜🎜다음 단계는 REST API 서비스를 구현하는 데 필요한 경로를 만드는 것입니다. 라우팅은 요청이 서비스에 들어온 후 서비스가 어떻게 응답해야 하는지에 대한 일련의 규칙으로 이해될 수 있습니다. 🎜🎜프로젝트 루트 디렉터리에 routes 폴더를 만들고 그 안에 index.js 파일을 만들고 다음 내용을 추가할 수 있습니다. 🎜rrreee🎜위 코드에서, 새 경로를 만들고 해당 경로의 /posts에 대한 GET 요청을 만듭니다. 요청은 상태 코드 200과 "모든 게시물"이라는 텍스트를 반환합니다. 🎜🎜다음으로 경로를 활성화하겠습니다. app.js 파일로 돌아가서 다음을 추가합니다: 🎜rrreee🎜위 코드에서는 routes/index.js에 정의된 경로를 가져오고 app.use('/api', postRoutes) 메소드는 REST API 서비스에 경로를 적용합니다. 그런 다음 localhost:3000/api/posts에서 GET 요청을 호출하면 "모든 게시물"이 반환되어야 합니다. 🎜🎜데이터베이스 연결🎜🎜물론 실제 프로젝트에서는 요청하고 얻어야 하는 데이터가 데이터베이스에 저장되므로 여기서는 NodeJS를 사용하여 데이터베이스에 연결하는 방법에 대해 논의해야 합니다. 🎜🎜MongoDB를 데이터베이스로 사용하고 mongoose를 사용하여 연결합니다. 명령줄에서 다음 명령을 실행하여 몽구스를 설치할 수 있습니다. 🎜rrreee🎜 다음으로 models 폴더를 만들고 설명을 위해 post.js in it code> 새 파일을 추가해 보겠습니다. 간단한 데이터 모델 🎜rrreee🎜위 코드에서는 데이터를 정의하기 위해 <code>Post라는 모델을 정의하고 데이터를 생성할 때 타임스탬프 옵션을 사용했습니다. 🎜🎜이제 Mongoose를 사용하여 로컬 MongoDB 데이터베이스에 연결하겠습니다. app.js 파일에 다음 내용을 추가할 수 있습니다. 🎜rrreee🎜위 코드의 데이터베이스 URL은 mongodb://localhost/posts로 설정되어 있습니다. 데이터베이스 이름은 posts이고 로컬 MongoDB 인스턴스에 있습니다. 또한 Mongoose 포트에는 기본 포트(27017)를 사용했습니다. Mongoose에서 더 이상 사용되지 않는 코드가 수정되었으므로 useUnifiedTopology 옵션을 사용해야 합니다. 🎜🎜라우팅 구현🎜🎜서버에 라우팅을 설정했으며 데이터베이스에 성공적으로 연결할 수 있습니다. 다음으로, POST 요청을 처리하고 데이터베이스에서 데이터를 가져오기 위해 더 많은 경로를 구성하겠습니다. 🎜🎜먼저 경로에 새 POST 요청을 추가하고 요청 본문에서 제목, 내용, 작성자 및 기타 필요한 정보를 추출합니다. 그리고 데이터를 데이터베이스에 저장합니다. 여기서는 데이터베이스에 "posts"라는 MongoDB 문서가 있다고 가정하고 Post 모델 자체에서 MongoDB 문서를 생성합니다. 🎜rrreee🎜상단의 코드에서는 먼저 모델 파일을 가져오고 GET 또는 POST 요청을 라우팅하는 데 필요한 모든 경로를 생성했습니다. GET 요청은 Post.find()를 사용하여 MongoDB 데이터베이스에서 모든 데이터베이스 항목을 추출하는 반면, POST 요청은 newPost.save()를 사용하여 새 데이터를 MongoDB 데이터베이스에 저장합니다. 데이터베이스 테이블 . 🎜

Postman을 사용하여 테스트

위 단계를 완료한 후 Postman을 사용하여 REST API를 테스트할 수 있습니다.

먼저 GET 요청을 사용하여 데이터를 검색하려고 합니다. http://localhost:3000/posts에 액세스하여 모든 게시물을 검색할 수 있습니다. http://localhost:3000/posts来检索所有的文章。

接下来,我们尝试使用POST请求创建新数据,我们可以通过访问http://localhost:3000/posts并在请求的主体中添加一个新的JSON数据体来创建新文章。

最后,我们还可以使用GET请求检索单个条目,我们可以通过访问http://localhost:3000/posts/:id

다음으로 POST 요청을 사용하여 새 데이터를 생성하려고 합니다. http://localhost:3000/posts를 방문하고 요청 본문에 새 JSON 데이터 본문을 추가하면 됩니다. . 기사.

마지막으로 http://localhost:3000/posts/:id에 액세스하여 ID로 제공되는 단일 게시물을 검색할 수도 있습니다. 🎜🎜이러한 간단한 단계를 통해 간단한 REST API를 구현하고 MongoDB 데이터베이스에 연결할 수 있습니다. 물론 항목 업데이트 및 삭제와 같은 작업 등 이 API를 지속적으로 개선할 수 있는 다른 작업도 많이 있지만 프로세스에 대한 더 깊은 이해를 얻으려면 이러한 함수를 직접 작성해 보는 것이 좋습니다. 🎜

위 내용은 nodejs 나머지 API 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!