我如何在mongodb存储代码片段?



我想创建一个post路由,所以我可以将用户键入的代码片段存储到MongoDB的集合中。

模式看起来像这样:-

const newSnippetSchema= new mongoose.Schema({
title:String,
snippet:String
})

简而言之,我正在创建一个像codeSandbox或code-pen这样的web应用程序,在那里我可以保存用户保存或键入的代码....当Post Route被触发时,我想以Json格式发送数据

创建http post web api。

const express = require('express')
const mongoose = require('mongoose')
const NewSnippetSchema = require('./models/newSnippetSchema')
const app = express()
mongoose.connect('mongodb://localhost/mydb', {
useNewUrlParser: true, useUnifiedTopology: true
})
app.set('view engine', 'ejs')
app.use(express.urlencoded({ extended:false }))
app.post('/newSnippet', async (req, res) => {
await NewSnippetSchema.create({  title: req.body.title, snippet: req.body.snippet })
res.redirect('/')
})
app.listen(process.env.PORT || 5000);

catchAsync Code:

const catchAsync = (fn) =>
function asyncUtilWrap(...args) {
const fnReturn = fn(...args);
const next = args[args.length - 1];
return Promise.resolve(fnReturn).catch(next);
};
export default catchAsync;

AppError代码:

class AppError extends Error {
constructor(message, statusCode) {
super(message);
this.statusCode = statusCode;
this.status = `${statusCode}`.startsWith('4') ? 'fail' : 'error';
this.isOperational = true;
Error.captureStackTrace(this, this.constructor);
}
}
export default AppError;
控制器代码:

const snippetController = catchAsync(async (req, res, next) => {
const { title, snippet } = req.body;
if (!title || !snippt) {
return next(new AppError('All fields are required', 400));
}
const snippetDoc = await Snippet.create(req.body);
return res.status(201).json({
status: 'success',
snippetDoc
});
});
export default snippetController;

路由器代码:

router.route('/snippet').post(snippetController);

数据库与此无关。你如何存储它并不重要,重要的是如何在你的HTML界面上呈现它。

在将代码片段存储到数据库之前,只需使用内置的HTML编码函数对其进行编码。(例如-将所有&编码为&,就像这样)。

获取数据后,在UI上呈现之前将其解码。

相关内容

  • 没有找到相关文章

最新更新