Если вы хотите реализовать или расширить любой другой класс, тогда интерфейс Runnable
наиболее предпочтителен, если вы не хотите, чтобы какой-либо другой класс расширялся или реализовывался, тогда предпочтительнее Thread
класс
. наиболее распространенная разница -
[/g1]
Когда вы extends Thread
класс, после этого вы не можете продлить какой-либо другой класс, который вам нужен. (Как вы знаете, Java не позволяет наследовать более одного класса).
Когда вы implements Runnable
, вы можете сохранить пространство для своего класса для расширения любого другого класса в будущем или сейчас.
Предоставлено из javarevisited.blogspot.com
Эти были заметной разницей между Thread и Runnable в Java, если вы знаете какие-либо другие отличия от Thread vs Runnable, чем поделиться ими с помощью комментариев. Я лично использую Runnable over Thread для этого сценария и рекомендую использовать интерфейс Runnable или Callable на основе вашего требования.
Однако существенная разница.
Когда вы extends Thread
класс, каждый из ваших потоков создает уникальный объект и связывается с ним. Когда вы implements Runnable
, он разделяет один и тот же объект на несколько потоков.
Плагины могут не регистрироваться в mongoose.plugin(myMongoosePlugin)
, поскольку модели mongoose создаются до того, как вы регистрируете плагины по всему миру.
expressjs
маршруты: Убедитесь, что в вашем app.js (server.js)
вы регистрируете плагины mongoose, прежде чем регистрируете / создаете маршруты expressjs
(которые используют монгонговые модели для связи с базой данных).
Пример:
в app.js
const express = require(express);
const mongoose = require('mongoose');
const myMongoosePlugin = require('<Mongoose Plugin file path>');
mongoose.plugin(myMongoosePlugin);
let app = express();
//register expressjs routes
require('<Express routes file path>')(app, express.Router());
// or create expressjs routes
app.post('/person', (req, res, next) => {
//where someMethod is using person mongoose model
this.someController.someMethod(someArguments)
.then((user) => {
res.json(user);
}).catch((error) => {
next(error);
});
});
// ... Some other code ...
mongoose.connect(<databaseConnectionString>);
app.listen(<Port>);
Попробуйте использовать вашу модель также в файле app.js. Где-то после mongoose.plugin(testPlugin)
.