Вопросы с тегами [node-js]

0

голосов
1

ответ
9

Просмотры

Зависимости Разрешая Nestjs косяка

Не могу понять, в чем проблема моего кода. (Я новичок с nestjs, я пытаюсь узнать его, передавая некоторые приложения к нему). Журнал консоль говорит: Гнездо не может решить зависимости в UrlsAfipService (?). Пожалуйста, убедитесь, что аргумент с индексом [0] доступен в контексте ApiModule. UrlsAfipService импорт {инъекционные} из @ nestjs / общий "; импорт {AfipUrls} из @Injectable»./urls' () экспорт класса UrlsAfipService {конструктор (частный afipUrls только для чтения: AfipUrls,). {} getWSAA () {вернуться this.afipUrls.homo () wsaa; //
Marcelo J Forclaz
1

голосов
1

ответ
3.4k

Просмотры

Проверьте, если значение существует в коллекции Монго

Я работаю в узле JS, и я использую Монго (Im абсолютный новичок). Теперь мне нужно, чтобы иметь коллекцию, которая в принципе должна выглядеть следующим образом ключи массива вар = [ «ключом1», «key2», «ключ3»] // с этим я легко могу проверить, если некоторое значение у меня есть в этом массиве с функцией IndexOf , Теперь мне нужно сделать коллекцию в Монго, что нужно только для хранения ключей, которые пользователь делает и если ключ уже существует в коллекции это нужно делать ничего. // Мои ключи выглядит примерно так, это может быть одна строка или это может быть массивом строковые ключи = «home4.car3» или Кис = [ «home4.car3», «home2.car4»] // Я нахожусь делать вставки, как этот db.collection (функция 'ключи', (эээ, коллекция) {collection.insert (ключи, {безопасно: истинно}, функция (эээ, результат) {если (ERR) {res.send ({» Ошибка «:» Ошибка "}); } Еще {console.log ( "успех"); }}); }); Теперь вот то, что произошло, когда я первый вставить массив из двух ключей в БД, а затем после этого одну строки: https://gist.github.com/anonymous/fc7730e398519cffde3f Кто-нибудь может сказать мне, как вставить для этого и как отфильтровать те ключи, чтобы проверить, если они в коллекцию?
user3237500
-1

голосов
0

ответ
24

Просмотры

Как использовать _lodash в nodejs API службы

Я пытаюсь использовать службу _lodash.groupBy в nodejs API службы. Я построил свой апи после этого урока: nodejs-MongoDB-апи. Затем я сделал свой собственный API для списков. Я пытаюсь использовать _lodash группировать некоторые данные прежде чем отправить его обратно к переднему концу, но я получаю сообщение об ошибке UnhandledPromiseRejectionWarning. Вот как у меня есть мои настройки API: roster.controller.js: Const экспресс = требуется ( «экспресс»); Const маршрутизатор = express.Router (); Const rosterService = требуется ( './ roster.service'); router.get ( '/ getRoster', getRoster); module.exports = маршрутизатор; Функция getRoster (REQ, разреш, netxt) {rosterService.getRoster () .then (реестры => res.json (списки)) .catch (ERR => следующая (ERR)); } roster.service.js: Const = конфигурации требуется ( 'config.json'); Const = JWT требуется ( 'jsonwebtoken'); Const Bcrypt = требуется ( 'bcryptjs'); Const дБ = требуется ( '_ хелперы / дб'); Const Учетный = db.Roster; Уст _ = требуется ( 'lodash / ядро'); module.exports = {getRoster}; Функция асинхронной getRoster () {вернуть _.groupBy ([6.1, 4.2, 6.3], Math.floor); } Roster.model.js Const мангуст = требуется ( 'мангусты'); Схема Const = mongoose.Schema; Const = схема новой схемы ({RAWDATA: {Тип: String}}); schema.set ( 'toJSON', {виртуалов: истинные}); _helpers / db.js Const = конфигурации требуется ( 'config.json'); Const мангуст = требуется ( 'мангусты'); mongoose.connect (process.env.MONGODB_URI || config.connectionString, {useCreateIndex: истинно, useNewUrlParser: истинный}); mongoose.Promise = global.Promise; module.exports = {Состав: требуется ( '../ списки / roster.model')}; module.exports = mongoose.model ( 'Учетный', схема); держать его просто, потому что теперь я просто используя пример предоставленный _lodash. Тем не менее, я получаю ошибку обещания. Я довольно новыми для работы с обещаниями и ответов, так что извините, если это очевидный вопрос. Вот ошибка я получаю от моего апи сервера: Сервер прослушивает порт 4000 (узел: 13273) UnhandledPromiseRejectionWarning: ReferenceError: рядом не определена rosterService.getRoster.then.catch.err (/ Users / Treetop / DEV / dutyoff / API / списки / rosters.controller.js: 43: 23) process.internalTickCallback (внутренний / процесс / next_tick.js: 77: 7) (узел: 13273) UnhandledPromiseRejectionWarning: Необработанные обещают отторжение. Эта ошибка возникла либо бросал внутри функции асинхронной без улова блока, или отвергая обещание, которое не было обработано с .catch (). (Отказ ID: 2) (узел: 13273) [DEP0018] DeprecationWarning: Необработанные обещают отказы являются устаревшими. В будущем обещают отбраковки, которые не обрабатываются прервет процесс Node.js с кодом ненулевым. Я также попытался поставить метод .groupBy в функции getRoster () без каких-либо удачи. Любая помощь, пытаясь получить эту работу была бы оценена.
DasPete
1

голосов
0

ответ
13

Просмотры

AWS: Доступ запрещен при попытке загрузить presigned URL (прямая FileUpload браузер)

Я пытаюсь использовать presigned URL, но я получаю 403 Forbidden Access Denied, несмотря на создание все, как я считаю, что я должен. Я хочу, чтобы загрузить файл непосредственно из браузера Amazon S3. Я в первую очередь позволяет корневой AWS счет использования putObject. У меня нет каких-либо дополнительных счетов - я просто хочу, чтобы работать на моей учетной записи суперпользователя, чтобы начать с. Вот политика Ковш: { "Версия": "2012-10-17", "Id": "XXXX", "Заявление": [{ "Sid": "XXXXX", "Эффект": "Разрешить", " Принципал ": { "AWS": "ARN: AWS: РМКО :: XXXX: корень"}, "Действие": "s3: PutObject", "Ресурс": "ARN: AWS: s3 ::: XXXXX / *"}]} Это мой Node.js бэкенд. Здесь я просто сгенерировать URL и отправить его в веб-интерфейсе. Некоторый код для внутреннего интерфейса: константный АМС = требуется ( 'AWS-SDK'); aws.config.update ({регион: "ес-северо-1", accessKeyId: "XXX", secretAccessKey: "YYY"}); Const s3 = новый aws.S3 ({apiVersion: "2006-03-01"}); app.get ( '/ GetURL', (REQ, Рез) => {сопз s3Params = {Ковш: 'XXXXXXXXXXXXX', ключ: req.query.filename, Истекает: 500, ТипСодержимый: req.query.type, ACL: " общественное чтение»}; s3.getSignedUrl ( "putObject", s3Params, (ERR, данные) => {res.send (данные);});}) В интерфейсе, я сделать простой вызов, используя URL с файл Я хочу, чтобы загрузить. Когда я выполнить вторую выборку вызова, он будет генерировать сообщение об ошибке: функции асинхронной handleUpload (е) {константный файл = e.target.files [0]; константные разреш = ждут выборки ( 'HTTP: // локальный: 3001 / GetURL'); Const URL = ждут res.text (); Const = resUpload ждут выборки (URL, {метод: 'PUT', тело: файл}); } Любые идеи, что я сделал неправильно? Edit - Похоже, это работает, если я снимите первый флажок - это большое дело или это должно всегда быть блокировано в производственном окр? } Любые идеи, что я сделал неправильно? Edit - Похоже, это работает, если я снимите первый флажок - это большое дело или это должно всегда быть блокировано в производственном окр? } Любые идеи, что я сделал неправильно? Edit - Похоже, это работает, если я снимите первый флажок - это большое дело или это должно всегда быть блокировано в производственном окр?
jones
0

голосов
1

ответ
16

Просмотры

No Output fast-csv writeToPath

Я пишу сценарий, который по своей сути разбирает файл .csv для определенных столбцов, хранящих их в массиве, а затем записывает его содержимое в другой файл .csv. Я могу разобрать файл, используя быстрый-CSV и подтвердил в терминале, что мой массив находится в правильном формате. Однако, когда я пытаюсь написать этот массив с помощью быстрого-CSV в файл .csv, содержимое никогда не появляются в файле и никаких ошибок не выбрасываются. Я подтверждено, что массив передается весь путь вплоть до обратного вызова. Кроме того, я зашел так далеко, чтобы заменить эту переменную в функции writeToPath с помощью простого массива и до сих пор не повезло. Любая помощь будет оценена. Const ProcessFile = (имя_файла, файл, CB) => {пусть WriteData = [] пусть tempArray = [] csv.fromPath (BasePath + файл, {ignoreEmpty: ложные, заголовки: ложь}) .on (»
mattymil
0

голосов
0

ответ
5

Просмотры

Как конвертировать из BLOB в PDF с использованием буфера в Node.js

Я пишу на основе HTML пользовательский графический интерфейс, который будет иметь возможность загружать цитаты для сгустка в моей SQL и при извлечении его с помощью функции GET, то он должен сделать поиск по базе данных и отправки PDF. В журнале консоли я вижу, что она проецирует буфер, но я не могу отобразить его на HTML-страницу как PDF, Что аа я делаю неправильно? app.get ( '/ viewq /: q_number', функция (REQ, разреш) {connection.query ( "SELECT * FROM q_file котировки ГДЕ q_number = '" + req.params.q_number +'", функция (ERR, результат) {вар FileData = новый буфер (25000); res.set ({ 'Content-Type': 'приложение / PDF', 'вложение': 'имя_файла = data.pdf', 'Content-Length': fileData.length}) ; res.write (FileData); console.log (FileData. нанизывать()); Отправить(); }); });
wimpie smith
1

голосов
2

ответ
1.5k

Просмотры

Не удается PUT ошибки в Node Экспресс приложении

Мой и опубликовать API, работает, но по какой-то причине моего app.put нет. Когда я ударил локальный: 3001 / контакты / 1 как PUT в Почтальон, я даже не вижу мой простой console.log: app.put ( '/ API / контакты: ИД', (REQ, Рез) => {консоли .log ( 'req.params.id', req.params.id); res.json (контакт);}); app.put app.put ( '/ API / контакты: идентификатор', (REQ, разреш) => {console.log ( 'req.params.id', req.params.id); res.json (контакт); }); Полный код server.js // Требуется ////////////////////////////////////////// ////////////////////////// Const = выразить требуется ( 'экспресс'); Const приложение = экспресс (); Const bodyParser = требуется ( 'тело-анализатор'); // req.body константные CORS = требуется ( 'CORS'); Const R = требуется ( 'ramda'); // Переменные /////////////////////////////////////////////// //////////////////// Const имя хоста = 'локальный'; Const порт = 3001; пусть контакты = требуется ( './ данные'); // Логика /////////////////////////////////////////////// //////////////////////// app.use (bodyParser.urlencoded ({расширен: истинно})); app.use (CORS ()); app.get ( '/ API / контакты', (REQ, разрешение) => {если (контакты || R.isEmpty (контакты)) returnError (Рез, 'Не найдены!'); res.json (контакты); }); app.get ( '/ API / контакты /: ИД', (REQ, разреш) => {Const контакт = contacts.filter (контакт => contact.id == req.params.id); если (R.isEmpty ( контакт)) returnError (Рез, 'нет контакта не найдено'); res.json (R.head (контакт));}); app.post ( '/ API / контакты', (REQ, разреш) => {Const контакт = {ID: contacts.length + 1, first_name: req.body.first_name, last_name: req.body.last_name, электронная почта: req.body.email, сайт: req.body.website} contacts.push (контакт); res.json (контакт); }); app.put ( '/ API / контакты: ID', (REQ, Рез) => {console.log ( 'req.params.id', req.params.id); // сопзЬ контакт = contacts.filter (контакт => {// возвращение contact.id == req.params.id //}) [0]; // console.log ( '1 контакт', контакт); // Const индекс = contacts.indexOf (контакт); // константные ключи = Object.keys (req.body); // keys.forEach (ключ => {// контакт [ключ] = req.body [ключ]; //}); // console.log (» 2 контакта», контакт); // контакты [индекс] = контакт; // console.log ( '' контакты, контакты); // res.json (контакты [индекс]); res.json (контакт);}) ; Const returnError = (резисторный, MSG) => res.status (404) .json ({сообщение: MSG}); app.listen (порт, имя хоста () => {console.log ( `сервер работает по адресу: // $ {имя хоста}: $ {порт}`);});
Leon Gaban
1

голосов
0

ответ
9

Просмотры

putBotAlias ​​не работает в AWS LexModelBuildingService node.js

Я пытался заменить существующий LexBot псевдоним (названный позднее) с вновь созданной версией бота. Теперь, согласно AWS документации Если вы хотите обновить бот псевдоним, установите в поле контрольной суммы с контрольной суммой самого последнего пересмотра $ последней версии. Я могу видеть Алиас Последняя является использование бота версии 12 в Lex консоли. Я пытался получать контрольную сумму с помощью следующего (я использую GetBot (...) от LexModelBuildingService получить контрольную сумму бота): использование самого имени псевдонима в качестве версии т.е. ПОСЛЕДНЕЙ. установка versionOrAlias ​​в методе GetBot Params как «$ ПОСЛЕДНИЕ». Жестко прописывать версию до 12 дюймов GetBot (..). Я использовал контрольную сумму из приведенных выше сценариев, но ошибка, кажется, так же, как PreconditionFailedException: Значение контрольной суммы не совпадает для ресурса с именем «Последним». Вот' Фрагмент кода с асинхронной putBotAlias ​​(botVersionResponse) {пусть контрольной суммы; . Ждет this.getBot (botVersionResponse.name, '12' ), а затем (botRes => {// использовал 12, Последний, $ Последней с console.log же ошибок ( "контрольной суммой Последний:" + botRes.checksum); контрольная сумма = botRes.checksum;}); вар PARAMS = {ИМЯ_БОТА: botVersionResponse.name, botVersion: (ParseInt (botVersionResponse.version, 10)) ToString (), название: 'Последняя', контрольная сумма: контрольная сумма.}; // Контрольная сумма: Контрольная сумма console.log ( "Params в putBotAlias:" + JSON.stringify (PARAMS)); вернуть новый посыл ((решительность, отклонять) => {this.modelBuildingService.putBotAlias ​​(PARAMS, функция (эээ, данные) {если (ERR) {отвергнуть (ERR); } // ошибка произошла еще {console.log ( "Поместите псевдоним Response :::" + JSON.stringify (данные)); разрешения (данные); } // успешного ответа}); }); } Я действительно у проигравших здесь, в какой версии именно он хочет. Любая помощь очень ценится. PS: Просьба указать любую дополнительную необходимую информацию в комментариях. } Я действительно у проигравших здесь, в какой версии именно он хочет. Любая помощь очень ценится. PS: Просьба указать любую дополнительную необходимую информацию в комментариях. } Я действительно у проигравших здесь, в какой версии именно он хочет. Любая помощь очень ценится. PS: Просьба указать любую дополнительную необходимую информацию в комментариях.
Salim Shamim
1

голосов
1

ответ
544

Просмотры

Node.js Azure SDK - получение состояния виртуальной машины

Я начал смотреть в лазурный SDK для Node.js (ссылка ниже), и что интересно, я врезался в стену в том, что я бы образ был бы одним из наиболее распространенных задач, один хотел бы достичь с помощью REST оконечные Azure в который проверяет состояние виртуальной машины. Я могу легко получить список всех машины, или один, в частности, но ответ от этой услуги не включает в себя текущее состояние виртуальной машины (бег, остановился и т.д.) Там совершенно нет информации там относительно этого конкретного сценария в docos или веб кроме блога (https://github.com/Azure/azure-xplat-cli/issues/2565), который на самом деле в отношении различной библиотеки. Пожалуйста, не то, что я использую библиотеку лазури-рычажные вычисления, которая является частью лазурного Node.js SDK. Любая помощь будет очень признателен GitHub репо: https: // GitHub.
Pilsen
1

голосов
2

ответ
226

Просмотры

Почему только один узел Readline объекта работы?

В следующем примере Node.js я хочу спросить у пользователя два числа, а затем вернуть сумму обратно в консоль. Я использовал readline.question () дважды (один для каждого номера), но пользователю предлагается только для второго номера. Почему не появляется первая строка консоли? Const Readline = требуется ( 'Readline'); пусть firstNumber = 0; пусть = 0 второе число; Const = гх readline.createInterface ({ввода: process.stdin, выход: process.stdout}); rl.question ( 'Ваш первый номер:', (ответ) => {firstNumber = ParseInt (ответ); rl.close ();}); Const г2 = readline.createInterface ({ввода: process.stdin, выход: process.stdout}); r2.question ( 'Вашего второй номер:' (ответ) => {= ParseInt второго числа (ответ); console.log ( `Сумма этих чисел: $ {+ firstNumber второго числа}`); r2. близко(); });
cham
0

голосов
0

ответ
18

Просмотры

Express/MySQL not returning same value returned by MySQL Workbench

I have a query that is perfectly working when I run it on MySQL Workbench, but when I run it on Express it is returning me all the data on my database. Please help fix? PS. posted this before but didn't get fixed. --Client $.ajax({ url: '/filter', type: 'get', contentType: 'application', data: { categoryIDs : checkedCategory, materialIDs : checkedMaterial, designIDs : checkedDesign}, success: function(response) { console.log(response.products); } }); --Server code getFilteredTable: function(req, res, next) { var filter="SELECT COUNT(A.id) \ FROM tbl_product A JOIN tbl_product_details B ON A.id = B.prod_id \ JOIN tbl_category C ON A.id = C.prod_id \ JOIN tbl_material D ON A.id = D.prod_id \ JOIN tbl_design E ON A.id = E.prod_id \ WHERE C.category_id IN (?) \ AND (D.material_id IN (?) \ OR E.design_id IN (?))"; mysqlConnection.query(filter, [req.query.categoryIDs, req.query.materialIDs, req.query.designIDs], function(err, rows, fields) { if(!err) res.send({products : rows}); else console.log(err); }); }, This is my query: SELECT COUNT(A.id) FROM tbl_product A JOIN tbl_product_details B ON A.id = B.prod_id JOIN tbl_category C ON A.id = C.prod_id JOIN tbl_material D ON A.id = D.prod_id JOIN tbl_design E ON A.id = E.prod_id WHERE C.category_id IN (6) AND (D.material_id IN (15) OR E.design_id IN (39)); I expect the output to be (workbench result): COUNT(A.id): 42 instead, it's giving me: COUNT(A.id): 1582
Matthew
1

голосов
3

ответ
621

Просмотры

Get response status code in a middleware

Я строй приложения, в котором я пытаюсь построить свою собственную систему регистрации для каждого запроса. Для каждого запроса, я хотел бы войти в метку времени, используемый метод, маршрут, и, наконец, код ответа, который был отправлен клиенту. У меня есть следующий код на данный момент: // index.js Const экспресс = требуется ( «экспресс»); Const bodyParser = требуется ( 'тело-анализатор'); константные CORS = требуется ( 'CORS'); Const приложение = экспресс (); app.use (bodyParser.json ()); app.use (CORS ()); app.use (требуется ( './ Lib / протоколирования')); app.get ( '/', (REQ, Рез, следующая) => {res.send ( 'Hello World!');}); app.listen (3001); // ./lib/logging.js константный момент = требуется ( 'момент'); Const мел = требуется ( 'мел'); Const лог = console.log; module.exports = (REQ, Рез, следующая) => {давайте теперь = `[$ {chalk.green (момент (). Формат ( 'HH: мм: сс'))}] `; пусть метод = chalk.magenta (req.method); пусть маршрут = chalk.blue (req.url); пусть код = chalk.yellow (res.statusCode); // Всегда 200 журнала ( `$ {Теперь} $ {метод} полученный запрос на $ {маршрут} $ {код}`); следующий(); } К сожалению, даже если я res.status (201) Пошли ( «привет мир») Он всегда будет ловить код статуса 200 ... Есть ли способ, чтобы поймать какой-либо ответ исходящую клиента и принести его код статуса?
nook
1

голосов
2

ответ
2.4k

Просмотры

How to read a JSON file data and use it in firebase cloud function

У меня есть firebase функции облака, которая будет вызываться по запросу HTTP, который работает отлично. Теперь я хочу, чтобы прочитать данные из файла JSON для некоторых бизнес-логики. Ниже приведены 2 варианта я пытался прочитать файл в формате JSON: Вариант # 1) Сохраненный файл JSON внутри «общественного» каталог в моем проекте nodejs и развернуто. Получил хостинг URL, который я использую, как показано ниже. Но его метание ошибки говоря 'Ошибка: getaddrinfo ENOTFOUND ... Вариант № 2) Загрузил файл в формате JSON для firebase облачных систем хранения данных. Didnt найти пример, чтобы попробовать это. Законченное на код ниже: константные функции = требуется ( «firebase-функции»); Const администратора = требуется ( 'firebase-администратора'); Const Firestore = требуется ( '@ Google облако / Firestore'); Const Firestore = новый Firestore (); Const HTTP = требуется ( 'HTTP'); Const URL = требуется ( 'URL'); // Вариант № 2 требуется переменный вар хранение = требуется ( «@ Google облако хранения /»); Const GCS = хранения ({ProjectID: ""}); Const ведро = gcs.bucket ( ""); Const файл = bucket.file ( "") // HTTP Trigger exports.functionName = functions.https.onRequest ((REQ, Рез) => {вар запрос = требуется ( 'запрос'); вар paramValue = req.body.queryParam ; console.log (paramValue); // Вариант № 1 - с помощью размещенного URL уаг hostingURL = "https://xxxxxxxx.firebaseapp.com/filename.json"; console.log (hostingURL); запрос ({URL: hostingURL, метод: 'POST', JSON:.. {ключ: 'значение'}}, функция (ошибка, ответ, данные) {}); // Вариант № 2 - Законченное здесь Хотите прочитать из ведра облако хранения console.log (файл); }); Кто-нибудь может мне помочь? ); Const GCS = хранения ({ProjectID: ""}); Const ведро = gcs.bucket ( ""); Const файл = bucket.file ( "") // HTTP Trigger exports.functionName = functions.https.onRequest ((REQ, Рез) => {вар запрос = требуется ( 'запрос'); вар paramValue = req.body.queryParam ; console.log (paramValue); // Вариант № 1 - с помощью размещенного URL уаг hostingURL = "https://xxxxxxxx.firebaseapp.com/filename.json"; console.log (hostingURL); запрос ({URL: hostingURL, метод: 'POST', JSON:.. {ключ: 'значение'}}, функция (ошибка, ответ, данные) {}); // Вариант № 2 - Законченное здесь Хотите прочитать из ведра облако хранения console.log (файл); }); Кто-нибудь может мне помочь? ); Const GCS = хранения ({ProjectID: ""}); Const ведро = gcs.bucket ( ""); Const файл = bucket.file ( "") // HTTP Trigger exports.functionName = functions.https.onRequest ((REQ, Рез) => {вар запрос = требуется ( 'запрос'); вар paramValue = req.body.queryParam ; console.log (paramValue); // Вариант № 1 - с помощью размещенного URL уаг hostingURL = "https://xxxxxxxx.firebaseapp.com/filename.json"; console.log (hostingURL); запрос ({URL: hostingURL, метод: 'POST', JSON:.. {ключ: 'значение'}}, функция (ошибка, ответ, данные) {}); // Вариант № 2 - Законченное здесь Хотите прочитать из ведра облако хранения console.log (файл); }); Кто-нибудь может мне помочь? ) // HTTP-триггер exports.functionName = functions.https.onRequest ((REQ, разреш) => {вар запрос = требуется ( 'запрос'); вар paramValue = req.body.queryParam; console.log (paramValue); / / Вариант № 1 - Использование размещенного URL-уаг hostingURL = "https://xxxxxxxx.firebaseapp.com/filename.json"; console.log (hostingURL); запрос ({URL: hostingURL, метод: 'POST', JSON: { ключ:. 'значение'}}, функция (ошибка, ответ, данные) {}); // Вариант № 2 - Законченное здесь Хотите прочитать из ведра облако хранения console.log (файл);});. Кто-нибудь может мне помочь? ) // HTTP-триггер exports.functionName = functions.https.onRequest ((REQ, разреш) => {вар запрос = требуется ( 'запрос'); вар paramValue = req.body.queryParam; console.log (paramValue); / / Вариант № 1 - Использование размещенного URL-уаг hostingURL = "https://xxxxxxxx.firebaseapp.com/filename.json"; console.log (hostingURL); запрос ({URL: hostingURL, метод: 'POST', JSON: { ключ:. 'значение'}}, функция (ошибка, ответ, данные) {}); // Вариант № 2 - Законченное здесь Хотите прочитать из ведра облако хранения console.log (файл);});. Кто-нибудь может мне помочь?
Naveen
1

голосов
2

ответ
98

Просмотры

JSONP разбора в JavaScript / Node.js

Если у меня есть строка, содержащая ответ JSONP, например «JSONP ([1,2,3])», и я хочу, чтобы получить 3-й параметр 3, как я мог бы написать функцию, сделать это для меня? Я хочу, чтобы избежать использования Eval. Мой код (ниже) отлично работает на отладочной линии, но возвращать неопределенное по какой-то причине. Функция разворачивать (JSONP) {функция для развертывания (пары) {console.log (пары [2]); // Это работает! вернуться из параметров [2]; } Var F = новая функция ( "JSONP", JSONP); вернуться F () для развертывания; } Переменная J = 'JSONP ([1,2,3]);' console.log (разворачивать (к)); // Возврат неопределенного Дополнительную информации: Я бег это в Node.js скребка, используя библиотеку запроса. Вот jsfiddle https://jsfiddle.net/bortao/3nc967wd/
ariel
1

голосов
2

ответ
416

Просмотры

Как вставлять PDF в HTML-страницы?

Мне нужно вставлять файл PDF в HTML страницы для пользователей, чтобы увидеть его на каждом главном устройстве. Большинство подходов отлично работает на рабочем столе, но они начинают показывать проблемы на устройствах IPad. не PDF-файлы больше не прокручивается, если помещается внутри фрейма или вставлять тег. Я использовал следующие методы для решения проблемы: 1) Использование PDF-файл для узла и преобразующего PDF к изображениям, а затем сдвигая их в DIV. Проблема этого подхода заключается в том, что качество изображения становится деградировало и не подходят для просмотра на Web. 2) Использование pdf.js от Mozilla Это отлично работает на любом устройстве, но это делает страницу крайне медленно и не реагирует на IPad 3) С помощью Google просмотра PDF Проблема с этим подходом является то, что мне нужно сделать мои файлы PDF общедоступными, которые я надеваю» т хотят сделать из соображений безопасности. Ни один из выше методы не работают для меня. Есть ли решение доступно для встраивания PDF на странице, которая работает на IPad также. Один из моих коллег сказал мне об использовании LibreOffice (открыт офис) без головы, чтобы встроить PDF-файлы в моей странице, но я не могу найти какую-либо документацию об использовании его? Может кто-нибудь, пожалуйста, помогите? :( Заранее спасибо!
writeToBhuwan
1

голосов
1

ответ
45

Просмотры

Разница между LocalStorage и сессии [закрыт]

Я создал аутентификацию пользователя с паспортной локальной стратегией, и я использую сессию. Каждый раз, когда пользователь вошел в сессии хранится в базе данных и в браузере. В моем веб-интерфейсе можно использовать user.id, чтобы сохранить его в локальном хранилище в качестве ключа или маркер?
Sadiq Mustapha Aji
1

голосов
4

ответ
247

Просмотры

Читать все имена файлов из файла .rar в Node.js

У меня есть экспресс-маршрут, который загружает файлы, которые отправляются на сервер через FormData. Предположив файл является .rar файл, моя цель состоит в том, чтобы извлечь все имена файлов, которые находятся внутри этого архива или его вложенные папки. Это как мой экспресс-маршрут в настоящее время выглядит следующим образом: module.exports = асинхронные (REQ, Рез) => {{попробуйте константный Busboy = новый Busboy ({заголовки: req.headers}) busboy.on ( 'финиш', асинхронное () => {сопз FILEDATA = req.files.file console.log (FILEDATA) // загрузить файл // отправить обратно ответ}) req.pipe (помощник официанта)} поймать (ERR) {возвращение response.error (REQ, Рез, эээ , 'uploadProductFile_unexpected')}} Вот как выглядит console.log (FILEDATA), как: {данные: имя,: 'filename.rar', кодирование: '' 7bit, тип_mime: «Приложения / октет-поток», усеченный ложь, размер: 224136} Внутри filename.rar несколько файлов, таких как texture.png и info.txt. И моя цель состоит в том, чтобы принести эти имена.
Florian
1

голосов
2

ответ
45

Просмотры

Получение 400 Bad Request, несмотря поймать заблуждаются angular2 +

Я разработал страницу входа в систему, где Войти успешна, когда я поставить правильный логин и пароль Логин не происходит, когда я ставлю неправильный логин или пароль, который является правильным. Тем не менее, я получаю эту ошибку: POST HTTP: // локальный: 3003 / Логин / аутентификации 400 (Bad Request) ERROR HttpErrorResponse {заголовки: HttpHeaders, статус: 400, его статуса: "Bad Request", URL: «HTTP: // локальный : 3003 / Войти / аутентификации», хорошо: ложь, ...} Все работает нормально, однако, я получаю ошибку в консоли. Как это: Я хочу, чтобы ошибка 400 плохо запрос не появляется в консоли. Как это сделать? login.component.ts Логин (данные) {console.log ( "Inside Войти"); this.authenticateObj = {имя пользователя: data.username, пароль: data.password} this.http.post ( "HTTP: // локальный: 3003 / Логин / аутентификации", }} Если (this.info.message == 'ошибка') {Alert ( 'Войти Failed'); } Еще если (this.info.status == 400) {Alert ( 'Войти Failed'); }})} Login.controller.js функцию authenticateUser (REQ, Res, следующая) {console.log ( "Внутри authenticateUser =", req.body) LoginService.authenticate (REQ, req.body) .Затем (функция (маркер) {если (маркер) {res.setHeader ( "разрешение", token.token); res.send ({сообщение: 'Войти Успешный.', ответ: маркер});} еще если (res.message == «Имя пользователя или неверный пароль ') {res.status (401) Пошлите ({сообщение:' Несанкционированное. '}); } Еще {console.log ( "внутри контроллера, иначе res.status-400"); res.status (400) Пошлите ({сообщение: 'Имя пользователя или пароль неверен'}); }}) .Catch (функция (ERR) {console.log ( "внутри контроллера, поймать res.status 400") // res.status (400) Пошлите (ERR); res.status (400) Пошлите ({ сообщение: 'Имя пользователя или пароль неверен'});}); } }); }}) .Catch (функция (ERR) {console.log ( "внутри контроллера, поймать res.status 400") // res.status (400) Пошлите (ERR); res.status (400) Пошлите ({ сообщение: 'Имя пользователя или пароль неверен'});}); } }); }}) .Catch (функция (ERR) {console.log ( "внутри контроллера, поймать res.status 400") // res.status (400) Пошлите (ERR); res.status (400) Пошлите ({ сообщение: 'Имя пользователя или пароль неверен'});}); }
Techdive
1

голосов
2

ответ
52

Просмотры

isEqual vs isMatch - Does isMatch ignore the order to nested array elements?

Я хотел бы знать, если оба IsEqual и isMatch работают в одних и тех же способов, за исключением того, что порядок элементов PropertyTypes массива игнорируется isMatch в этом случае за исключением. Я не нашел эту информацию в документации isMatch в. Я хотел бы знать, если оба IsEqual и isMatch работают в одних и тех же способов, за исключением того, что порядок элементов PropertyTypes массива игнорируется isMatch в этом случае за исключением. Я не нашел эту информацию в документации isMatch в.
Akshay Maldhure
1

голосов
1

ответ
84

Просмотры

Асинхронный / ждать против тогда, что является лучшим для работы?

У меня есть простой код JavaScript, который выполнить запрос в API и вернуть ответ, просто. Но в этом случае я буду иметь тысячи запросов. Так, что один из вариантов кода будет работать лучше, и почему. Кроме того, какой из них рекомендуются в качестве хороших в эти дни обычаев? Первые варианты используют .Застут для решения обещания и seccond один используют асинхра / ждать. В моих тестах два варианта имел очень близкие результаты без существенных отличий, но я не уверен в масштабе. // Использование затем DoSomething (полезная нагрузка) {сопз URL = 'https: // ссылка-сюда / consultas'; вернуть this.axios.get (URL, {PARAMS: {маркер: payload.token, Chave: payload.chave,},}). Затем (соответственно => resp.data); } // Использование Асинхронный / асинхронной ждут DoSomething (полезной нагрузки) {сопзЬ URL = 'https: // ссылка-сюда / consultas'; константные RESP = ждут this.axios.get (URL, {Params: {маркер: payload.token, Chave: payload.chave,},}); вернуться resp.data; } Любое объяснение будет иметь большое значение.
Francisco
1

голосов
1

ответ
78

Просмотры

Скопируйте содержимое S3 ведра в другое ведро | Узел JS

Я хочу, чтобы скопировать все содержимое ведра S3 в другое ведро S3 (в одной и той же учетной записи) с помощью AWS Lambda (NodeJs). Прямо сейчас, что я делаю, чтобы перечислить содержимое исходного ведре, а затем скопировать их в ведре назначения. Есть ли лучший подход, чтобы скопировать все содержимое? Короче говоря, я хочу дубликат ведра. Мой код в NodeJs является: s3.listObjects (sourceBucketParams, функция (эээ, данные) {если (ERR) {console.log ( "Ошибка при копировании файлов:", ERR);} если (данные === нуль || данные === не определено) {обратного вызова (нуль, 'Все сделано!');} если (data.Contents.length) {async.each (data.Contents, функция (файл, центибар) {вар Params = {CopySource: sourceBucket + '/' + file.Key, Ковш: destBucketName, Ключ: file.Key, ACL: 'общественного чтения'}; s3.copyObject (PARAMS, функция (copyErr, CopyData) {если (copyErr) {console.log ( "Ошибка:" + copyErr);}}); Обратный вызов (нуль, 'Все сделано!'); }); }});
Fayza Nawaz
1

голосов
2

ответ
135

Просмотры

Docker дизайн для нескольких приложений [закрыт]

Что такое хороший дизайн, когда у вас есть несколько приложений? Поэтому в основном я dockerized приложения среагировать и nodejs приложения. Так что моя идея состоит в том, чтобы иметь 3 Docker контейнеров - один для реакции приложения, один для nodejs бэкэнда и Nginx в качестве маршрутизатора. Любой вызов с / перенаправит реагировать приложение и все, что с / АНП маршрут к nodejs бэкенд. Кроме того, для среагировать приложения, в процесс разработки мы будем запускать приложение с началом НПМ запуска и во время развертывания мы будем иметь несколько шага сборки, где мы будем работать НУЮ сборку запуска и скопировать папку сборки на Nginx изображение. Я использую Docker Compose запустить их на моем местное время как разработчик, а также на серверах QA / этапе. Идея имея Nginx маршрутизатор должен был разрешить прокси-сервер для различных приложений из любого приложения. Таким образом, я хочу, чтобы поощрить команду следовать постное achitecture. Чтобы понять конструкцию, см ниже: DEV СРЕДЫ - -> "
bhb
1

голосов
1

ответ
33

Просмотры

Используйте Lastest затронутые данные в объекте

У меня есть этот список объект, который я возвращаю: возвращение ({имя: data.name, запрос: {метод: methodLine [индекс] .method.toUpperCase (), заголовок: data.request.header, описание: data.request.description, } ответ: [{originalRequest: запрос}]}) И я хочу использовать данные, хранящиеся в запросе объекта при вызове его в массиве ответа в том же операторе возврата. Есть ли способ сделать это?
brxnzaz
1

голосов
0

ответ
13

Просмотры

Запутывающую установить ошибку с ifxnjs в узле 10

Запуск НПМ проекта, по установке на официальный узле: 10 докер изображения выходит с запутанной ошибкой сборки. Я могу предоставить другие детали, но я не знаю, что это относится к делу. ../src/odbc.cpp: В статической функции-члена 'статический v8 :: Local ODBC :: GetSQLError (SQLSMALLINT, SQLHandle, символ *)': ../src/odbc.cpp:1184:87: ошибка: нет соответствия функция для вызова 'v8 :: Object :: SetPrototype (v8 :: Local)' objError-> SetPrototype (Exception :: Error (Nan :: Новая (ErrorMessage) .ToLocalChecked ())); ^ В файле включен из ../src/odbc.cpp:21:0: /root/.node-gyp/10.15.3/include/node/v8.h:3442:37: Примечание: кандидат: v8 :: Может быть v8 :: Object :: SetPrototype (v8 :: Local, v8 :: Local) V8_WARN_UNUSED_RESULT Может SetPrototype (локальный контекст,
Reid
1

голосов
2

ответ
30

Просмотры

Moment.js Плагины следует устанавливать обе зависимости?

Я хочу использовать moment.js плагин как момент- бизнес-дней. Должен ли я установить оба зависимости? NPM установить момент-бизнес-дней НПМ установить момент // да / нет / может быть? Или это достаточно установить плагин, как это происходит с moment.js зависимостей себя? Есть ли лучшая практика?
Rubberducker
1

голосов
2

ответ
92

Просмотры

I am getting io not defiend error in my socket.io client

This is my server side code for creating connection to the socket.I am using node.js code and using socket.io in that. const path = require('path'); const http = require('http'); const express = require('express'); const socketIO = require('socket.io'); const port = process.env.PORT || 3000; var app = express(); var server = http.createServer(app); var io = socketIO(server); io.on('connection', (socket) => { console.log('New user connected'); }) and this is my client side code i am using plain javascript as a client and I am using 2.1.1 version of socket.io, I am getting io not defiend error,I am very new to socket.io please help me one this one. $(document).ready(function(){ var socket = io('http://localhost:3000'); console.log("Socket connected"+socket.connected); socket.on('notification', function(value){ //insert your code here }); });
nitish
1

голосов
1

ответ
46

Просмотры

Невозможно, чтобы кукловод просмотреть недавно собранные ссылки повторное использование и тот же браузер

Я создал сценарий в узле в сочетании с кукловодом скоблить ссылки различных сообщений с целевой страницы на сайте и мой сценарий делает это безупречно. Хотя содержание этого сайта является статическим, я использовал кукловод, чтобы увидеть, как она работает, как я новичок в этом. То, что я хочу сделать сейчас, чтобы использовать эти ссылки, чтобы пройти различные страницы повторных использования и тот же браузер, не очищая ничего из новых страниц. Тем не менее, я не могу изменить сценарий, чтобы отразить то же самое. Это моя попытка до сих пор: Const кукловод = требуется ( «Кукловод»); (Асинхронный () => {Const браузер = ждет puppeteer.launch ({безголовое: ложь}); Const [страница] = жду browser.pages (); page.goto ждут ( "https://stackoverflow.com/questions/ помечено / веб-соскоб. "); page.waitFor (" Резюме "); константные секции = ждут страницы. $$ ( "Резюме"); Пусть данные = []; для (сопзИте сечение секций) {сопза ITEMNAME = ждут секций $ Eval ( "вопрос-гиперссылке.", Ei => el.href). data.push (ITEMNAME); } Browser.close (); возвращать данные; }) (); Как я могу исправить мой сценарий для того, чтобы пройти вновь собранные ссылки повторно использовать тот же браузер?
robots.txt
0

голосов
0

ответ
3

Просмотры

Как настроить хранилище для клиента SDK Hyperledger ткани?

I am trying to invoke chaincode from node.js client but I got error when calling getUserContext() on FabricClient instance object. I followed the fabcar example on https://github.com/hyperledger/fabric-samples, which works in single node multiple docker instances setting. Then I followed a multi-node deployment tutorial on https://www.skcript.com/svr/setting-up-a-multi-node-hyperledger-fabric-network-with-docker-swarm/ But this tutorial from skcript only covered calling the chaincode from cli, not including node.js example. The keystore generated by skcript is xxx-sk, which is different from the keystore generated by fabcar (it's xxx-priv and xxx-pub). I tried to convert the format manually using ssh-keygen but still get error on getUserContext() call. Then I tried to input my chaincode and network setting into https://github.com/wearetheledger/hyperledger-typescript-boilerplate and https://github.com/hyperledger/fabric-samples fabcar javascript-low-level example. Both are not working. When I query a chaincode function, I got below error: error from query = { Error: 2 UNKNOWN: Stream removed at Object.exports.createStatusError (/home/ali1/testnet/sct/learn/fabric-samples/fabcar/javascript-low-level/node_modules/fabric-client/node_modules/grpc/src/common.js:91:15) at Object.onReceiveStatus (/home/ali1/testnet/sct/learn/fabric-samples/fabcar/javascript-low-level/node_modules/fabric-client/node_modules/grpc/src/client_interceptors.js:1204:28) at InterceptingListener._callNext (/home/ali1/testnet/sct/learn/fabric-samples/fabcar/javascript-low-level/node_modules/fabric-client/node_modules/grpc/src/client_interceptors.js:568:42) at InterceptingListener.onReceiveStatus (/home/ali1/testnet/sct/learn/fabric-samples/fabcar/javascript-low-level/node_modules/fabric-client/node_modules/grpc/src/client_interceptors.js:618:8) at callback (/home/ali1/testnet/sct/learn/fabric-samples/fabcar/javascript-low-level/node_modules/fabric-client/node_modules/grpc/src/client_interceptors.js:845:24) code: 2, metadata: Metadata { _internal_repr: {} }, details: 'Stream removed' } Below included my testing file FYI. main test file: import { fabric } from '../src/config/fabric'; import { ContractCall } from 'sct-domain'; import FabricClient = require('fabric-client'); function log(action) { console.log(action, '...'); } log('new FabricClient()'); let fabricClient = new FabricClient(); log('newChannel()'); let channel = fabricClient.newChannel(fabric.channelName); log('newPeer()'); let peer = fabricClient.newPeer(fabric.peerUrl); log('addPeer()'); channel.addPeer(peer, fabric.mspid); log('newOrderer()'); let orderer = fabricClient.newOrderer(fabric.ordererUrl); log('addOrderer()'); channel.addOrderer(orderer); log('newDefaultKeyValueStore()'); let ready = FabricClient.newDefaultKeyValueStore({ path: fabric.keystorePath }) .then(store => { log('setStateStore()'); // assign the store to the fabric client fabricClient.setStateStore(store); log('newCryptoSuite()'); let cryptoSuite = FabricClient.newCryptoSuite(); log('newCryptoKeyStore()'); // use the same location for the state store (where the users' certificate are kept) // and the crypto store (where the users' keys are kept) let cryptoKeyStore = FabricClient.newCryptoKeyStore({ path: fabric.keystorePath }); log('setCryptoKeyStore()'); cryptoSuite.setCryptoKeyStore(cryptoKeyStore); log('setCryptoSuite()'); fabricClient.setCryptoSuite(cryptoSuite); log('getUserContext()'); // get the enrolled user from persistence, this user will sign all requests /* FIXME: got error here */ return fabricClient.getUserContext('user1', true); }); // channel.queryInfo().then(blockchainInfo =>{ // console.log(blockchainInfo) // }); export async function queryFunction(call: C): Promise { return channel.queryByChaincode({ chaincodeId: 'sct', fcn: 'version', args: [], }).then(res => { console.log('res:', res); return res as any; }, ); } ready.then(client => { console.log('ready'); console.log(client); return queryFunction(null); }); config file (../src/config/fabric.ts): import * as path from 'path'; export namespace fabric { export let keystorePath = path.join(__dirname, '../../../sct-fabric/hlf-docker-swarm/network/crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/keystore'); keystorePath = 'hfc-key-store'; keystorePath = 'keystore'; export let channelName = 'mychannel'; export let mspid = 'Org1MSP'; // local docker swarm export let peerUrl = 'grpc://10.200.1.208:7051'; export let ordererUrl = 'grpc://10.200.1.124:7050'; // node1 docker swarm peerUrl = 'grpc://158.132.11.229:7051'; ordererUrl = 'grpc://158.132.11.229:7050'; }
Beeno Tung
1

голосов
1

ответ
13

Просмотры

объект данных Вставка JSON в MySQL с помощью Node.js

.. Я хочу, чтобы вставить объект JSON в MySQL в сервере Node.js, это код, пусть ID = 1 пусть дата = новая дата () toJSON () срез (0,10) .Надеть (/ - / г, '/ «); пусть SQL = 'вставить в case_record (case_details, gen_date, case_id) VALUES (' + caseDetails + ' '+ дата +', '+ идентификатор +')' console.log (SQL) con.query (SQL, функция (ERR, результат, полей) {если (ERR) бросить ERR; разреш = результат; console.log (RES)}); Это данные caseDetails пусть caseDetails = {caseData, patData, notifData, primecData, refData} Каждый из объекта в caseDetails является JSON-объект также. Когда я преобразования приложений, возврат ошибка Ошибка: ER_PARSE_ERROR: У вас ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «[объект Object], 2019/04 / 22,1)»
Wenhao Hong
1

голосов
1

ответ
81

Просмотры

Как развернуть expressjs статических шаблонов для AWS без перезагрузки сервера?

У меня есть сервер express.js сервера, который я разворачивать к AWS упругой Beanstalk. Я использую Рули двигатель для шаблонов. Шаблоны структура меняется чаще, чем код сервера, поэтому я хочу, чтобы иметь быстрый способ развертывания их. Я экспериментировал с хостинг шаблонов на отдельном S3 статического ведра, а затем загружать их из nodejs кода. Таким образом, я могу развернуть изменения в шаблоны очень быстро с помощью S3 статического развертывания и не Eb развернуть, что перезапускает все узлы сервера. Вот мой node.js код сервера для шаблона загрузки: Const s3 = новый aws.S3 (); s3.getObject ({Ковш: 'bucketname.com', ключ: 'вид /' + путь}, (ERR, данные) => {Const шаблон = handlebars.compile (data.Body.toString ( 'UTF-8') ); разрешить (шаблон);}); Это решило проблему шаблона скорости развертывания, но я не уверен, если он не вносит дополнительные потери производительности. Я думал, так как S3 и эластичная Beanstalk являются амазонки услуги воздействие должно быть минимальным, но сайт тесты заставляют меня думать иначе. Может быть, есть лучший способ решить проблему скорости развертывания шаблонов?
brisky
-1

голосов
3

ответ
102

Просмотры

Невозможно добавить дополнительный элемент (мангусты) объект

У меня есть nodejs экспресс-приложения с API для получения данных из базы данных MongoDB. Это мой мангуст модель: Const bookingSchema = новый mongoose.Schema ({метка времени: {Тип: Дата, по умолчанию: Date.now, требуется: истинно}, теги: {тип: [String], требуется: истинно}, количество: { Тип: Number, требуется: истинно}, тип: {Тип: String, требуется: правда, перечисление: [ 'счет', 'доходы']}}) Когда я звоню ИПН с пути / API / заказа / listbymonth / 2019/1 эта функция внутри бэкэндом вызывается: Const bookingsListByMonth = (REQ, Рез) => {сопз год = ( "0000" + req.params.year) .slice (-4) сопзЬ месяц = ​​( "0000" + req.params.month) .slice (-2) Const dateOfMonth = `$ {год} $ {месяц} 01` Const начать = момент (dateOfMonth) .startOf ( "месяц" ) Const конец = момент (dateOfMonth) .endOf ( "месяц") bookingMongooseModel .find ({метка времени: {$ Gt: начать, $ л: конец}}) ({.sort метку времени: 1}) .exec ((ERR, заказы) => {если (заказы) {возвращение разреш .status (404) .json ({ "сообщение": "бронирование не найден"})} еще если (ERR) {вернуться Рез .status (404) .json ( ERR)} разреш .status (200) .json (processBookings (заказы));})} Вместо того, чтобы просто возвращает данные в формате JSON, я хочу предобработки данных и сделать хорошую отметку времени и валюты поле. Вот почему данные JSON проходит через дополнительную функцию processBookings. Для тестирования я пытался добавить еще одно поле timestamp2: 123: Const processBookings = (заказы) => {console.log ( "Заказ несортированная: \ п" + заказы + "\ п") = Const mainTags [ "Эссен", "Эссен gehen", "Notwendiges", "Luxus",] пусть bookingsProcessed = [] mainTags.forEach ((тэг) => {пусть singleTagBookings = bookings.filter (бронирование => booking.tags.includes (тэг)) singleTagBookings.map ((пункт) => {item.timestamp2 = «123 "возвращение пункт}) пусть сообщение = NULL; если (singleTagBookings.length === 0) {сообщение = "нет заказов не найдено";} bookingsProcessed.push ({имя: тег, бронирование: singleTagBookings, сообщение: сообщение})}) ; console.log ( "Заказ отсортирован:") bookingsProcessed.forEach ((пункт) => {консоли. войти (пункт)}) возвращает bookingsProcessed} Объекты в массиве заказы должны иметь другое свойство timestamp2: «123», но они этого не делают. Вот результат: Заказы несортированные: {теги: [ 'Luxus', 'voluptatem', 'atque', 'дш', 'SÜNT'], _id: 5cb2c9e1ff6c9c6bef95f56f, метка времени: 2019-01-06T08: 53: 06.945Z, количество : 68,02, типа: 'расход', __v: 0}, {теги: [ 'Эссен gehen', 'ут', 'недеформированной', 'и др', 'officiis'], _id: 5cb2c9e1ff6c9c6bef95f56e, метка времени: 2019-01- 09T20: 35: 06.411Z, количество: 33.77, типа: 'доход', __v: 0} Заказ отсортирован: {имя: 'Эссен', бронирование: [], сообщение: "нет заказов не найдено} {имя:«Эссен gehen », бронирование: [{теги: [Массив], _id: 5cb2c9e1ff6c9c6bef95f56e, Отметка времени: 2019-01-09T20: 35: 06.411Z, количество: 33,77, тип: 'доход', __v: 0}], сообщение: NULL} {имя: '' Notwendiges, заказы: [], сообщение: «Нет заказов найдено»} {имя: 'Luxus', бронирование: [{теги: [массивы] _id: 5cb2c9e1ff6c9c6bef95f56f, метка времени: 2019-01-06T08: 53: 06.945Z, количество: 68,02, тип: 'расход', __v: 0 }], сообщение: нулевой} Как и в комментариях предложил я пытался использовать пусть заказы = [{тэги: [ "Essen"]}]; в качестве тестовых данных. Здесь он работает. Выход: Заказы несортированное: [объект Object] Заказы отсортированный: {имя: 'Эссен', бронирование: [{теги: [Массивы], timestamp2: '123'}], сообщение: NULL} {имя: 'Эссен gehen' , заказы: [], сообщение: "нет заказов не найдено} {имя: ' Notwendiges', бронирование: [], сообщение: "Нет заказов не найдено} {имя:„Luxus“, заказы: [], сообщение:„Нет заказов не найдено“} Так что я предполагаю, что это что-то делать с моей мангуст модель ограничения на добавить любое дополнительное поле. Однако если я ставлю console.log ( "Расширяемый" + Object.isExtensible (бронирование)) Рез .status (200) .json (processBookings (заказы)); в мою функцию bookingsListByMonth я получаю: EXTENSIBLE верно Итак, в теории я должен быть в состоянии что-то добавить к объекту заказов? В качестве обходного пути я добавил поле timestamp2 к моим мангустам модели: константный bookingSchema = новый mongoose.Schema ({метка времени: {Тип: Дата, по умолчанию: Date.now, требуемая: истинно}, timestamp2: {Типа: String, по умолчанию: NULL }, теги: {типа: [String], требуется: истинно}, количество: {Тип: Number, требуется: истинно}, тип: {Тип: String, требуется: правда, перечисление: [ «счет», «доходы»]}}) Это работает, однако он добавляет дополнительное поле бесполезных данных в моей базе данных. Как я могу изменить объект заказов JSon возвращенный из MongoDB? Если я не могу изменить его, потому что это модель мангуста, как я могу сделать копию, которая редактируется?
mles
3

голосов
1

ответ
29

Просмотры

Как размыть электронный BrowserWindow с прозрачностью

Вопрос Можно ли сделать BrowserWindow, в электроном, прозрачный с размытием? В том, что она размывает все фоновое содержание, включая приложения и обои. И если возможно, то как бы я это сделать? Примеры Вот код, который я пробовал. index.js: пусть выигрыш = новый BrowserWindow ({полноэкранного режим: правда, fullscreenable: ложь, РАМА: ложный, skipTaskbar: истина, изменяемого размера: ложь, движимое ложь, шоу: ложный, AlwaysOnTop: правда, прозрачен: истинный}) стиль. CSS: HTML, тело {ширина: 100vw; высота: 100vh; Маржа: 0; обивка: 0; фоновый цвет: RGBA (0, 0, 0, 0,5); Цвет: RGB (255, 255, 255); фон-фильтр: размытие (4px); } HTML-это просто тело с тегом h1 с текстом в нем. Хотя это создает только черный фон в окне. Я что-то об этом читал: webPreferences: {ЭкспериментальныеВозможности: истинно} Но не могу заставить его работать. Окружающая среда Ubuntu: 18.04.2 Node: v10.15.3 НПМ: 6.4.1 i3wm. 4.14.1 У меня Комптон работает. Maybey он должен делать с этим. Или композитинга двигатель вообще? Заранее спасибо!
Emil Walser
1

голосов
0

ответ
88

Просмотры

How do I get rid of BSON objects after a mapReduce?

I'm a complete beginner to map-reduce and relatively new with MongoDB. I am trying to perform a map-reduce on a collection (by the name Customers). My map function: var map = function() { emit(this.nationality, {edad: this.age, telefono: this.phone_number}); }; My reduce function: var reduce = function(key, values) { return Array.sum(values); }; I call mapReduce() as follows: db.Customers.mapReduce( map , reduce , { out : { inline : 1}} ); Finally my result field is: "results" : [ { "_id" : "Brazil", "value" : { "edad" : 34, "telefono" : null } }, { "_id" : "Colombia", "value" : "[object BSON][object BSON]" }, { "_id" : "Germany", "value" : { "edad" : 18, "telefono" : 2986 } }, ... As you can see it contains BSON objects, the problem being that I can't find a way to visualize the content of these BSONs, not even in Robomongo. I have looked for other answers in Stackoverflow addressing this, so far I have found this: "Your reduce function must return the same format that your map function emits". But being honest, I haven´t managed to figure out how do I apply it to solve my problem. I mean, what is the format of my emit? And in which format is the output of my reduce function? If anyone could provide me the exact code lines, my gratitude in advance.
1

голосов
1

ответ
326

Просмотры

Как убить дочерний процесс НПМ

У меня есть package.json, на котором я определяю отладки сценария. Этот скрипт запускает приложение узла. Весь НПМ скрипт запускается с помощью теста, и этот последний должен убить скрипт отладки, как только тест заканчивается. Поэтому, когда я икра НОЙ запустить отладку и я убью его, процесс узла не убит. Я пытался либо убить весь процесс с child_process.kill и порождая команду убить Баш не повезло, так как ИДП не принадлежит к узлу запущенного с помощью NPM выполнения отладки. Как убить этот процесс узла, для которого я не являюсь его PID?
Matías Fidemraizer
1

голосов
1

ответ
112

Просмотры

Не могу требовать визуализатора в протоколе HTTP в электроном

Может кто-нибудь объяснить мне, почему этот код не работает? Я пытался требовать визуализатор в протоколе файла (без явного статического сервера), и это было хорошо, но когда я сделать это с помощью протокола HTTP я получил неперехваченным Ошибка: Не удается найти модуль «./renderer»! Есть ли способ, чтобы требовать пользовательских модулей HTTP? Спасибо ... Структура - проект + node_modules - app.js - index.html - package.json - renderer.js app.js сопз {приложение, BrowserWindow} = требуется ( 'электрон'); Const = выразить требуется ( 'экспресс'); Const = путь требует ( 'путь'); Const URL = требуется ( 'URL'); Сервер = Const экспресс (); server.use (express.static (__ имя_директории)); app.on ( 'готов', () => server.listen (3000, CreateWindow)); Функция CreateWindow () {пусть выиграть = новый BrowserWindow ({ширина: 800, высота: 600}); win.loadURL (URL. Формат ({протокол: 'HTTP', имя хоста: 'локальный', порт: 3000})); win.webContents.openDevTools (); win.on ( 'закрытые', функция () {выиграть = NULL; app.quit ();}); } Index.html Тест требует ( './ рендерер'); renderer.js вар корень = document.getElementById ( 'корень'); root.innerHTML = 'Hello, World!'; Электронная версия: 1.7.10 Операционная система: Windows 10
Sadra Samadi
1

голосов
0

ответ
140

Просмотры

How to handle async upload file with NodeJS?

I use Multer to manage file upload. I must verify with JWT (this.verify) to confirm this post. If it is success then my file was uploaded. Because my code is asynchronous, I cannot call this.configUpload(). This is the router: const mailer = require('../../libraries/mailer_lib'); router.post('/',mailer.configUpload(),mailer.verifyJWT()); My Mailer_lib: const Mailer = function() { this.configUpload = function() { const path_folder = '../../uploads/'; var storageOptions = multer.diskStorage({ destination: function (req, file, cb) { let dest = path.join(__dirname, path_folder) ; cb(null, dest); }, filename: function (req, file, cb) { let nameFilter = common.sanitizeFileName(file.originalname); var hashName = md5(nameFilter + common.getTimeMSFloat()); cb(null, hashName + path.extname(file.originalname)); } }); const multipartMiddleware = multer({ storage : storageOptions, fileFilter: function (req, file, callback) { var isFile = file.originalname.toLowerCase(); if (!isFile.match(/ \.(jpg | jpeg | png | doc | docx | xls | xlsx | zip | pdf | ppt | pptx)$ / )) { return callback(new Error('Format File Not Allowed'), false); } callback(null, true); }, limits: { // 6MB fileSize: 1024000 * 6 }, inMemory: true, includeEmptyFields: true }); var cpUpload = multipartMiddleware.fields([ { name: 'proofReporting', maxCount: 1} ]); return cpUpload; }; this.verifyJWT = function () { return function(req, res) { var app = req.app; var DB = req.DB; var token = req.body.token || req.query.token || req.headers['x-access-token'] || req.headers.authorization || req.params.token; var secret = process.env.SECRET_KEY_JWT; if (token) { jwt.verify(token, secret, function(err, decoded) { if (err) { logger.error('JWT_ERROR', err.message); res.json({ 'responseStatus': { 'responseCode' : 403, 'responseDesc': err.message } }); } else if (!decoded.reminder_id) { logger.info('Your Token is not for confirmation reminder'); res.json({ 'responseStatus': { 'responseCode' : 403, 'responseDesc': 'Your Token is not for confirmation reminder' } }); } else if (decoded.next_schedule { if (status[0].is_confirm == 0) { // pending / not approve / var reminderModel = createModel(app); reminderModel.update({ isConfirm : 1, confirmBy : decoded.user_id, dateChecked : common.today() }, { where : { reminderId : decoded.reminder_id } }) .then(row => { if (row == 1) { logger.info('Approve'); res.json({ responseStatus : { responseCode : '00', responseDesc : 'Reminder Has Approve', } }); } else { logger.info('Not Approve'); res.json({ responseStatus : { responseCode : 400, responseDesc : 'Bad request', } }); } }) .catch(err => { logger.error('SQL_GET_EMAIL', err); res.json({ responseStatus : { responseCode : 500, responseMessage : 'Internal Server Error' } }); }); } else if (status[0].is_confirm == 1) { logger.info('Reminder Has Approve'); res.json({ responseStatus : { responseCode : '00', responseDesc : 'Reminder Has Approve', responseDetail : ` ${status[0].date_checked}` } }); } }) .catch(err => { logger.error('SQL Query', err); res.json({ responseStatus : { responseCode : 500, responseMessage : 'Internal Server Error' } }); }); } }); } else { logger.error('TOKEN', 'No token provided'); res.json({ responseStatus : { responseCode : 403, responseMessage : 'No token provided' } }); } }; }; }; I changed to: const mailer = require('../../libraries/mailer_lib'); router.post('/'mailer.verifyJWT()); And put mailer.configUpload behind --> mailer.verify() but my file is not uploaded.
Faustrata1
1

голосов
0

ответ
67

Просмотры

Nano.auth fails when require_valid_user = true

Ниже мой пример кода со ссылкой на этот документ: https://github.com/dscape/nano#using-cookie-authentication вар нано = требуется ( «нано») ( «HTTP: // локальный: 5984») Const имя пользователя = 'тест' '123123' Const обратного вызова Const UserPass = console.log // это, как правило, некоторые обратного вызова константных куки = {} // хранить куки, как правило, Redis или что-то nano.auth (имя пользователя, UserPass, функция (эээ, тело , заголовки) {если (ERR) {возвращение обратного вызова (ERR);} если (заголовки && заголовки [ 'Set-Cookie']) {печенье [имя пользователя] = [ 'заголовки Set-Cookie']; console.log (печенье) } если (ERR) {обратный вызов ( "успех", "он работал");}}); Он отлично работает, когда мой require_valid_user = ложь {тест: [ «AuthSession = dGVzdDo1QTQ1RTFENDoVzjtA5v82S3bJRyI9Mz_J9dXrWA; Version = 1; Истекает = чт, 28-Dec-2017 22:43:56 GMT; Max-Age = 600; Path = /; HttpOnly»]} // успех он работал, однако, когда я установил require_valied_user = истинный, он не со следующей ошибкой: имя:„Ошибка“, ошибка:„несанкционированного“, причина:„требуется аутентификация“, объем:„“кушетки , StatusCode: 401, запрос: {метод: 'POST', заголовки: { 'Content-Type': «применение / х-WWW-форм-urlencoded; кодировка = UTF-8' , принимаем: 'приложения / JSON'}, Ури: 'Http: // Localhost: 5984 / _SESSION', тело: "Имя = тест & пароль = 123123}, заголовки: { 'WWW-Authenticate': 'Основная область = "сервер"', дата: 'пт, 29 декабря 2017 6:42:10 GMT', 'Content-Type': 'применение / JSON'
komorebi
1

голосов
1

ответ
194

Просмотры

Дождитесь сохранения перед продолжением функции

У меня есть цикл, который перебирает массив пользователей, этот цикл является асинхронным, что я хочу сделать, это для каждого пользователя создать новый документ и сохранить его и ждать этого, чтобы сохранить и затем перейти к следующему пользователю. Я могу справиться, когда переходить к следующему пользователю, поэтому моя проблема при сохранении новых данных документов. Я использую мангуст метод сохранение. Основная функция выполняется цикл, вот пример. Примечание: 'асинхронный' является асинхронным модуль v2.6.0 async.forEach (пользователи, (пользователь, обратный вызов) => {console.log ( `Проверки $ {user.first_name}`); createNewDocument (пользователь, (ERR) => {если (! эээ) {console.log ( "Новый документ создан."); обратный вызов ();}}, (ERR) => {если (ERR) {console.log ( "Все пользователи были обновлены"); }});}, не связанные с асинхронными пользователями метода. Foreach ((пользователь) => {console.log ( `Проверка $ {user.first_name}`); createNewDocument (пользователь, (ERR) => {если (ERR) {console.log ( "Новый документ создан.")! ;}});}); Функция Функции createNewDocument createNewDocument (пользователь, обратный вызов) {console.log ( "Создание нового дока ..."); пусть DOC = новый док (); doc.save ((ERR) => {если (ERR) {console.log ( `Новый документ, созданный для пользователя $ {user.first_name}`);! обратного вызова;}}); console.log ( «Создание нового док закончил выполнение ...»); } Все выполняется, и последняя вещь, которую я получаю в моем журнале есть куча «Новый документ, созданный для пользователя ....» для всех пользователей. Я попытался довольно много вещей, я попытался поставить doc.save в обещании, но это не сработало, а также, не уверен, что я должен делать. EDIT: Это важно для меня, чтобы создать новый документ, прежде чем перейти к следующему пользователю, я не хочу, чтобы добавить их в вызовы массив, а затем выполнить его, мне нужно сделать проверку, что предыдущий документ действительно существует, и принять некоторые данные из него на следующий раз, когда цикл входит
Muhand Jumah
1

голосов
0

ответ
42

Просмотры

WebPack решения требуют аргументы перед сборкой (constexpr)

Я работаю на RESTful API сервера express.js. что я ожидаю что-то вроде узел Экспресса маршрутизатора промежуточного программного обеспечения для RESTful API базы на определенном пути к папке. но этот пакет с помощью динамических требует, который загружает модули во время выполнения с выражением. эта причина WebPack выдаст ошибку: Критическая зависимость: запрос о зависимости является выражением. что я сделал это изменение требует, чтобы require.context, вводящая проблема actrully: Критическая зависимость: требуется функция используется в некотором смысле, в котором зависимости не может быть статический извлеченным пример коды // импорта-routes.js функции importRoutes (папка, шаблон = /\.js$/) {константные файлы = require.context (путь_к_папка, правда, шаблон); . Files.keys () Foreach ((файл) => {// сделать что-то здесь}); } Module.exports = (папка, шаблон) => importRoutes (папка, шаблон); // индекс. JS константные маршрутов = требуется (»./ Lib / импорт-API ') (' ./ Apis'); // constexpr маршруты = требуется (»./ Lib / импорт-API ') (' ./ Apis'); // otherIndex.js константные маршрутизирует = требуется (»./ Lib / импорт-API ') (' ./ otherApis'); // constexpr маршруты = требуется (»./ Lib / импорт-API ') (' ./ otherApis'); Есть ли что-то так же, как constexpr в CPP, которые могли бы решить эту проблему на время компиляции? Отнесение constexpr
Zazck
1

голосов
0

ответ
43

Просмотры

Проблема с использованием Socket.io 404 ошибки

Я недавно получил в Socket.io, во время долгосрочного проекта шахты. Что, вероятно, почему я имею такое трудное время его, потому что их «Getting Started» разделы не учитывают, вы можете уже быть глубоко в развитие вашего собственного приложения. Основной проблемой является его подключения, он не будет делать это на стороне клиента, то есть. Я постоянно получаю 404 не найден, который является причиной по НЕВОЗМОЖНО POST /socket.io/ Что это правильно, он не может, очевидно, главным образом потому, что не там, где место socket.io является (это в node_modules на обычном). Во-вторых, если я создать маршрут для этого, он абсолютно ничего не делает. Так вот код инициализация: / * jshint esversion: 6 * / Const = выразить требует ( 'экспресса'); Const HTTP = требуется ( 'HTTP'); Const bodyParser = требуется ( 'тело-анализатор'); Const = путь требует ( 'путь'); Const = expressValidator требуется ( 'экспресс-валидатор'); Const вспышка = требуется ( 'соединение-вспышка'); Const сессия = требуется ( 'экспресс-сессии'); Const = паспортные требуется ( 'паспорт'); Const DB = требуется ( './ конфигурации / DB'); // инициализация приложения Const приложение = экспресс (); // инициализация HTTP сервер Const сервер = http.createServer (приложение); // инициализации сокета Const Io = требуется ( 'Socket.io') слушать (сервер). Вот пытается клиентской подключиться к нему: если (window.location.hostname == 'playkog.net' || window.location.hostname == 'www.playkog.net') {вар порт = 443; } Еще {вар порт = 8080; } = Вар соединены ложно; вар сокет = io.connect (window.location.hostname + ':' + порт, { 'таймаут соединения': 5000}); // Подключение Успешного socket.on ( 'Connect', функция () {console.log (» пользователь подключен '); = подключен верно; }); socket.on ( 'разъединение', функция () {console.log ( 'пользователь отсоединен'); соединен = ложь;}); Я полагаю, я должен подключить к другому порту, однако я не уверен, и не, если это моя проблема (или только вопрос). Конечно, быть чрезвычайно новым для такого рода вещей (любитель в лучшем случае), некоторые из этих вещей просто идти прямо над моей головой. Вот скриншот моей консоли
William

Просмотр дополнительных вопросов