Я реализовал страницу, на которой студенты могут вводить свое название курсовой работы с намеченными вехами. Тем не менее, я хочу добавить проверку, которая позволит пользователям входить только с использованием следующего метода, две строки с «:» между ними. Например - «Курсовая работа: Веха». Любая длина строки, допустимая, при условии, что есть две строки с ':', чтобы разделить их посередине, как показано в примере. Я очень новичок в Node.js, Express, jQuery и Handlebars, и я искал способы сделать это, но ни один не показался мне полезным. Ниже приведен единственный необходимый код.
в файле контроллера, раздел для создания новых входных данных
const Task = require('../models/task');
create: function(req, res) {
Task
.create(req.body)
.then(result => {
// result.sort(sortTask)
res.json(result)
})
.catch(err => res.json(err));
}
файл модели, задача. js, для справки
//dependency
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
//data inputted into the database, coursework/milestones section, validation included
const taskSchema = new Schema({
task: {
type: String,
},
completed: {
type: Boolean,
default: false
},
addedAt: {
type: Date,
default: Date.now()
},
});
const Task = module.exports = mongoose.model('Task', taskSchema);
* Код 1018 *, позволяющий выполнять эти действия, в папке publi c, eventListeners. js file
$(document).ready(function() {
//index page events
//click even for creating a milestone/coursework
$('#create').on('click', function(e) {
createTask(e);
});
//keypress event that allows milestone?coursework to be created on 'Enter'
$('#task').keypress(function(e) {
if (e.key === 'Enter') {
createTask(e);
}
});
секция ввода файла index.hbs
<input type="text" class="form-control" placeholder="Coursework : Milestone" id="task" autofocus>