AdminBro, express, mongoDB, mongoose로 5분 만에 관리 영역 만들기
필요한 것은 모델뿐이며 AdminBro 패키지를 사용하여 모델만을 기반으로 완전히 작동하는 대시보드를 실행할 수 있습니다.
먼저 익스프레스 서버를 설정해야 합니다.
mkdir server
cd server
npm init
익스프레스 및 Admin Bro 패키지를 설치해 보겠습니다.
npm i @adminjs/express @adminjs/mongoose adminjs express mongoose
이제 모델용 폴더를 만들어야 합니다.
mkdir models
그리고 모델용 파일, 제품 및 카테고리용 모델을 만든다고 가정해 봅시다.
touch models/products.js models/categories.js
models/products.js
에서 제품에 대한 스키마를 정의해 보겠습니다.const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const productsSchema = new Schema({
product: {
type: String,
required: true,
unique: true
},
price: {
type: Number,
required: true
},
categoryId: {
type: Schema.Types.ObjectId, ref: 'categories',
required: true
},
});
module.exports = mongoose.model('products', productsSchema);
및
models/categories.js
내부 범주의 경우:const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const categoriesSchema = new Schema({
category: {
type: String,
required: true,
unique: true
}
},
{strictQuery: false}
)
module.exports = mongoose.model('categories', categoriesSchema);
이제
index.js
폴더 안에 주 서버 파일server
을 만들어 보겠습니다.touch index.js
이 기본 베어본 코드를 여기에 추가합니다.
// GENERAL CONFIG
const app = require('express')();
const port = process.env.PORT || 5050;
// CONNECTING TO DB
const mongoose = require('mongoose');
(async function () {
try {
await mongoose.connect('mongodb://127.0.0.1/ourDatabase');
console.log('Your DB is running');
} catch (error) {
console.log('your DB is not running. Start it up!');
}
})();
app.listen(port, () => console.log(`🚀 Server running on port ${port} 🚀`));
이제 우리는
nodemon
로 서버를 실행할 수 있고 로컬 mongo 데이터베이스에 연결되어 실행 중인지 확인할 수 있습니다.이제 마지막 단계입니다. 모델을 가져와야 하며 나머지는 Admin Bro가 처리합니다.
db에 연결한 후
index.js
파일에 다음을 추가하십시오.// ADMIN BRO
const AdminJS = require('adminjs');
const AdminJSExpress = require('@adminjs/express')
// We have to tell AdminJS that we will manage mongoose resources with it
AdminJS.registerAdapter(require('@adminjs/mongoose'));
// Import all the project's models
const Categories = require('./models/categories'); // replace this for your model
const Products = require('./models/products'); // replace this for your model
// Pass configuration settings and models to AdminJS
const adminJS = new AdminJS({
resources: [Categories, Products],
rootPath: '/admin'
});
// Build and use a router which will handle all AdminJS routes
const router = AdminJSExpress.buildRouter(adminJS);
app.use(adminJS.options.rootPath, router);
// END ADMIN BRO
Admin Bro를 가져온 후 볼 수 있듯이 모델이 필요합니다.
const Categories = require('./models/categories'); // replace this for your model
const Products = require('./models/products'); // replace this for your model
그런 다음 이 예에서 (
Categories
및 Products
)를 Admin Bro에 전달합니다.const adminJS = new AdminJS({
resources: [Categories, Products],
rootPath: '/admin'
});
rootPath: '/admin'
에서 대시보드 경로 설정이제 지정된 포트(이 예에서는 5050)에서 서버를 열고 이 예에서 관리자 URL(
/admin
)로 이동하면 데이터와 함께 사용할 준비가 된 멋진 대시보드가 표시됩니다.Demo repo on GitHub
Reference
이 문제에 관하여(AdminBro, express, mongoDB, mongoose로 5분 만에 관리 영역 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bcncodeschool/creating-an-admin-area-in-five-minutes-with-adminbro-express-mongodb-mongoose-1j11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)