Не завершайте цикл запрос-ответ в контроллере, просто верните результат из контроллера, а не заканчивайте цикл.
const httperror = require('http-errors');
exports.index = async function(parameter) {
Contact.get(function(err, contacts) {
if (err) {
throw new httperror(400, "Error occured!");
}
return {
status: "success",
message: "Contacts retrieved successfully",
data: contacts
}
});
};
Запрос должен начинаться с маршрута, а ответ должен отправляться с маршрута.
const contactController = require('./contactController');
router.get('/contacts', function (req, res, next) {
contactController.index()
.then(result => {
res.json(result)
}).catch((error) => {
res.status(200).json({"Error":"Returned success code 200 even though error
occured"});
})
});
В общем, SharedPreferences - это ваш лучший выбор для сохранения настроек, поэтому в целом я бы рекомендовал этот подход для сохранения настроек приложения и пользователя.
Единственное, что вас беспокоит, это то, что вы ' повторное сохранение. Пароли всегда сложно хранить, и я бы особенно остерегался хранить их в виде открытого текста. Архитектура Android такова, что SharedPreferences вашего приложения помещены в «песочницу», чтобы другие приложения не могли получить доступ к значениям, поэтому есть некоторая безопасность, но физический доступ к телефону потенциально мог бы разрешить доступ к значениям.
Если возможно, я бы рассмотрите возможность изменения сервера для использования согласованного токена для предоставления доступа, например, OAuth . В качестве альтернативы вам может понадобиться построить какое-то криптографическое хранилище, хотя это нетривиально. По крайней мере, убедитесь, что вы шифруете пароль перед записью его на диск.
вам нужно использовать sqlite , безопасность apit для хранения паролей. Вот лучший пример, который хранит пароли, - Passwordsafe. вот ссылка на источник и объяснение - http://code.google.com/p/android-passwordsafe/
Самый простой способ сохранить одно предпочтение в действии Android - это сделать что-то вроде этого:
Editor e = this.getPreferences(Context.MODE_PRIVATE).edit();
e.putString("password", mPassword);
e.commit();
Если вас беспокоит их безопасность, вы всегда можете зашифровать пароль перед хранением.