Добавлено:
SSL
команда:
$ openssl genrsa -out privatekey.pem 1024
$ openssl req -new -key privatekey.pem -out certrequest.csr
$ openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
Добавлено:
config.*.json
, где *
— это значение переменной окружения NODE_ENV
процесса;
process.env.NODE_ENV === 'DEV'
, то будет загружен файл конфигурации config.dev.json
и присвоен объекту конфигурации.*
должно быть в нижнем регистре.*
равно dev
.Добавлено:
Добавлена конфигурация disableBodyParser
.
используйте new Fpm({ disableBodyParser: ['/notify'] })
чтобы отключить обработчик запросов /notify
добавьте промежуточное программное обеспечение:
app.use(async(ctx, next) => {
delete ctx.disableBodyParser;
const disableBodyParser = this.get('disableBodyParser');
if(disableBodyParser){
let urls;
if(_.isArray(disableBodyParser)){
urls = disableBodyParser;
} else if(_.isString(disableBodyParser)){
urls = disableBodyParser.split(',');
}
const urlPath = ctx.request.url;
_.map(urls, url => {
if(_.endsWith(urlPath, url)){
ctx.disableBodyParser = true;
}
});
}
await next();
});
Поддержка HTTPS
Пример конфигурации:
{
ssl: {
key: 'ssl/server.key', // путь до файла ключа
cert: 'ssl/server.crt', // путь до файла сертификата
port: 9443, // порт для HTTPS
},
}
Как создать SSL ключ/сертификат?
Здесь# 2.5.0 (2018-11-12)
Добавлено:
package-lock.json
fpm.getEnv(envKey, defaultValue)
получает значения переменных окружения процесса по ключуУдалено:
yarn.lock
Добавлено:
fpm.getPluginRef(pname)
получает исходное имя плагина по его имени, например: getPluginRef('mysql')
или getPluginRef('fpm-plugin-mysql')
fpm._webhook_events
записывает события вебхуков
содержит: { topic!String, message!Object, at!timestamp }
Используйте curl
для выполнения вебхуков
URL вебхуков: /webhook/:upstream/:type/:data
Тема публикации: #webhook/${upstream}/${type}
$ curl -H "Content-Type:application/json" -X POST --data '{"id":10}' http://localhost:9999/webhook/test/foo/bar
Исправление ошибок:
publish(topic, data)
Изменение:
async execute(method, args, v, ctx)
Теперь параметр v
является необязательнымfpm._publish_topics
, которое хранит все темы, опубликованные бизнес-функциямиpublish(topic, data)
теперь может выбрасывать исключение при публикации темы другой функциейИсправление ошибок:
masterkey
до изменения: let sign = (args) => {
; после изменения: let sign = (args, apps) => {
Добавлено:
execShell(shellPath:String!, params:[ ]?) => Promise
Метод для выполнения файлов с расширением .sh
или .bat
.
Параметр shellPath
должен быть абсолютным путём
Исправление ошибок:
Digest already called
в файле yf-fpm-server/lib/utils/kit.js:25:7
https://github.com/nodejs/node-v0.x-archive/issues/1415# 2.4.2 (2018-05-28)
Обновление:loadPlugin
package
, которое ссылается на исходный модуль плагина для каждого плагинаisBound
, которое указывает, был ли метод bind()
успешно вызван для каждого плагинаФайлы:loadPlugin
из bin/app.js
в utils/plugin.js
Добавлено три поля для плагинов:
packageInfo
Объект package.json
для плагинаhttps://www.npmjs.com/package/${packageInfo.name}
Ссылка на страницу плагина на сайте npmjs.com
http://registry.npmjs.org/${packageInfo.name}
Информация о регистрации плагинаУдалено:
deletedir
Обновлено:
Обновление:
Добавлено:
server.hostname
и server.domain
server: {
hostname: '0.0.0.0',
domain: 'localhost',
port: 9999
}
Promise
в fpm.run()
, которое будет выполнено после запуска сервера
app.run()
.then(fpm => {
fpm.logger.info('готово...')
})
Добавлено:
package.json
проектаКоды исключений: от 900
до 999
Обновлено:
Удалено:
Удалено:
Запланировано:
fpm-plugin-admin
ctx.fpm.runAction('CALL_API', ctx.fpm, ctx, { method, param, v })
ctx
в функцию core(method, args, v, fpm, ctx)
ctx
в каждый обработчик handler(args, ctx, [])
ctx
в hook.runHook('before_' + method, args, v, ctx)
# 2.2.24 (2018-04-28)TODO:permission.js
Удалено:
точки действия BEFORE_MODULES_ADDED
и AFTER_MODULES_ADDED
; метод fpm.addBizModules(biz:Biz)
может вызываться несколько раз;
поддержка более типов результата в промежуточном слое response.js
, а не только объектов;
ctx.success = (result, msg) => {
data.message = msg || '';
if (_.isPlainObject(result)) {
if (_.has(result, 'data')) {
data.data = result.data;
return;
}
}
data.data = result;
};
Добавлено:
extendModule(name:String!, module:Object/Function!, version:String?)
для плагинов в режиме DEV
;getPlugins()
вывод всех загруженных плагинов;isPluginInstalled(name:String!)
;Удалено:
Добавлено:
Добавлено:
createRouter
;bindRouter(router)
;Удалено:
qiniu
;Плагины:
qiniu
;Функционал:
qiniu
;Функционал:
koa-multer
;Функционал:
Функционал:
Удалено:
analyse.js
с auth.js
;Изменено:
Reg.test()
для проверки корневого пути приложения;Функционал:
FPM.config
;extendConfig(c){
config = _.assign(config, c || {});
};
```Удалено
- `util.job`, `util.logger`
Изменены файлы
- Добавление каталога примеров с файлом `app.js`
# 2.1.8 (2017-03-01)
- проверка `config.json` при выполнении `FPM.INIT()`
Критическое изменение:
- отмена конфигурационного промежуточного слоя
# 2.1.7 (2017-02-21)
Функционал:
- Поддержка плагинов
- Обновление модулей `koa2-cors`
- Добавление метода `getConfig()` для статического файла конфигурации `config.json`
- Добавление дополнительных точек действия [INIT, BEFORE_ROUTER_ADDED, AFTER_ROUTER_ADDED, BEFORE_MODULES_ADDED, AFTER_MODULES_ADDED, BEFORE_SERVER_START, AFTER_SERVER_START]
- Добавление метода `execute` для класса `fpm`
# 2.1.6 (2017-02-05)
Функционал:
- Поддержка отправки данных JSON
- Обновление модулей `Koa`
# 2.1.5 (2017-02-05)
Исправлено:
- Ошибка сервера `TypeError: args.hasOwnProperty is not a function`
```bash
ошибка сервера TypeError: args.hasOwnProperty не является функцией
at checkArgs (F:/FPM/yf-fpm-server/src/middleware/compare.js:55:16)
at compare (F:/FPM/yf-fpm-server/src/middleware/compare.js:9:21)
at _callee$ (F:/FPM/yf-fpm-server/src/middleware/compare.js:107:23)
at tryCatch (F:\FPM\yf-fpm-server\node_modules\.0.10.1@regenerator-runtime\runtime.js:64:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (F:\FPM\yf-fpm-server\node_modules\.0.10.1@regenerator-runtime\runtime.js:355:22)
до:
if (!args.hasOwnProperty(a))
после:
if (!_.has(args, a))
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )