Rumah  >  Artikel  >  hujung hadapan web  >  Gunakan api rehat nodejs

Gunakan api rehat nodejs

WBOY
WBOYasal
2023-05-11 14:28:06536semak imbas

Dalam era Internet hari ini, membina perkhidmatan bahagian belakang yang cekap dan pantas adalah penting. NodeJS cemerlang dalam bidang ini, menjadikannya pantas dan mudah untuk membina perkhidmatan web yang cekap. REST API juga merupakan kaedah yang sangat popular untuk membina perkhidmatan web dalam industri Internet hari ini. Ia boleh mengurangkan jumlah kod, memudahkan pengendalian port, dan mempunyai banyak faedah. Dalam artikel ini, kita akan mempelajari cara menggunakan API REST dengan cepat menggunakan NodeJS dan ExpressJS.

Persediaan alam sekitar

Sebelum kita mula, kita perlu menyediakan persekitaran:

  1. Penyunting teks (Kod VS disyorkan)
  2. Node.js (muat turun dan pasang dari laman web rasmi)
  3. Postman (alat ujian, boleh dimuat turun dan dipasang dari laman web rasmi)

Mulakan projek

Pertama, kami membuka terminal dan mencipta direktori projek Baharu:

mkdir project-name
cd project-name

Kemudian, kami menggunakan npm init untuk mencipta pakej baharu:

npm init

npm init Anda akan diminta untuk memasukkan beberapa maklumat asas, seperti nama pengarang, nama projek , versi, dsb. Beberapa tetapan lalai boleh digunakan secara langsung, cuma ubah suai beberapa maklumat anda sendiri.

Seterusnya, kami perlu memasang kebergantungan berikut:

npm install express body-parser cors —save
  • Express ialah rangka kerja yang kami gunakan untuk membina REST API.
  • body-parser ialah perisian tengah untuk menghuraikan permintaan POST dan data JSON.
  • Cors ialah pemalam yang membenarkan aplikasi web mendayakan CORS (Cross-Origin Resource Sharing) pada domain lain

Buat perkhidmatan

Sekarang, mari kita buat fail baharu bernama app.js yang akan menjadi titik permulaan untuk perkhidmatan API REST NodeJS kami. Kami boleh membina perkhidmatan ini dengan bantuan rangka kerja 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}`)
})

Dalam coretan kod di atas, kami mengimport Express, body-parser dan cors. Kami juga menggunakan kaedah app.listen() yang mendengar pada port 3000. Akhir sekali, kami mendayakan perisian tengah cors dan body-parser melalui kaedah app.use().

Membuat Laluan

Langkah seterusnya ialah membuat laluan, yang diperlukan untuk melaksanakan perkhidmatan REST API kami. Penghalaan boleh difahami sebagai satu set peraturan untuk cara perkhidmatan harus bertindak balas selepas permintaan memasuki perkhidmatan.

Kami boleh mencipta folder routes dalam direktori akar projek dan mencipta fail index.js di dalamnya dan menambah kandungan berikut:

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

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

module.exports = router;

Dalam kod di atas, kami mencipta A baru laluan dan permintaan GET sebanyak /posts dibuat pada laluan itu. Permintaan akan mengembalikan kod status 200 dan teks "Semua siaran".

Seterusnya, kami akan membolehkan laluan itu. Kami kembali ke fail app.js dan menambah yang berikut:

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}`)
})

Dalam kod di atas, kami mengimport laluan yang ditakrifkan dalam routes/index.js dan menggunakan laluan ke perkhidmatan REST API kami menggunakan kaedah app.use('/api', postRoutes) tengah. Kemudian, apabila localhost:3000/api/posts memanggil permintaan GET, ia harus mengembalikan "Semua siaran".

Sambungan pangkalan data

Sudah tentu, dalam projek sebenar, data yang perlu kita minta dan dapatkan akan disimpan dalam pangkalan data, jadi kita perlu membincangkan di sini cara menggunakan NodeJS untuk menyambung ke pangkalan data.

Kami akan menggunakan MongoDB sebagai pangkalan data kami dan mongoose untuk menyambung kepadanya. Kita boleh memasang mongoose dengan menjalankan arahan berikut dalam baris arahan:

npm install mongoose --save

Seterusnya, mari buat folder models dan tambah fail baharu post.js di dalamnya untuk menerangkan model Data yang ringkas.

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);

Dalam kod di atas, kami menentukan model bernama Post untuk menentukan data kami dan menggunakan pilihan cap masa semasa menciptanya.

Sekarang, kami akan menggunakan Mongoose untuk menyambung ke pangkalan data MongoDB tempatan. Anda boleh menambah kandungan berikut dalam fail 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}`);
});

Kod di atas mempunyai URL pangkalan data ditetapkan kepada mongodb://localhost/posts, yang bermaksud pangkalan data dinamakan posts dan terletak dalam contoh MongoDB tempatan kami . Kami juga menggunakan port lalai (27017) untuk port Mongoose. Ambil perhatian bahawa kod yang tidak digunakan dalam Mongoose telah diperbaiki, jadi kita perlu menggunakan pilihan useUnifiedTopology.

Melaksanakan Penghalaan

Kami telah menyediakan penghalaan dalam pelayan dan boleh berjaya menyambung ke pangkalan data kami. Seterusnya, kami akan mengkonfigurasi lebih banyak laluan untuk mengendalikan permintaan POST dan mendapatkan data daripada pangkalan data kami.

Pertama, kami menambah permintaan POST baharu pada laluan kami dan mengekstrak tajuk, kandungan, pengarang dan maklumat lain yang diperlukan daripada badan permintaan. dan menyimpan data ke dalam pangkalan data. Di sini, kami akan mencipta dokumen MongoDB dengan mengandaikan pangkalan data bernama "siaran" dan menghantar model Post itu sendiri.

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;

Dalam kod di bahagian atas, kami mula-mula mengimport fail model kami dan mencipta semua laluan yang diperlukan untuk permintaan GET atau POST. Permintaan GET menggunakan Post.find() untuk menarik semua entri pangkalan data daripada pangkalan data MongoDB, manakala permintaan POST kami menggunakan newPost.save() untuk menyimpan data baharu ke dalam jadual pangkalan data.

Gunakan Posmen untuk menguji

Selepas melengkapkan langkah di atas, anda boleh menggunakan Posmen untuk menguji REST API kami.

Mula-mula, kami cuba mendapatkan semula data menggunakan permintaan GET Kami boleh mendapatkan semula semua artikel dengan mengakses http://localhost:3000/posts.

Seterusnya, kami cuba mencipta data baharu menggunakan permintaan POST Kami boleh mencipta artikel baharu dengan mengakses http://localhost:3000/posts dan menambah badan data JSON baharu dalam kandungan permintaan.

Akhir sekali, kami juga boleh mendapatkan satu entri menggunakan permintaan GET, kami boleh mendapatkan satu artikel yang disediakan daripada ID dengan mengakses http://localhost:3000/posts/:id.

Dengan langkah mudah ini, kami boleh melaksanakan API REST mudah dan menyambung ke pangkalan data MongoDB. Sudah tentu, terdapat banyak operasi lain yang boleh terus menambah baik API ini, seperti operasi seperti mengemas kini dan memadamkan entri, tetapi kami mengesyorkan agar anda cuba menulis sendiri fungsi ini untuk mendapatkan pemahaman yang lebih mendalam tentang proses tersebut.

Atas ialah kandungan terperinci Gunakan api rehat nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:komen dokumentasi nodejsArtikel seterusnya:komen dokumentasi nodejs