小编Nag*_*Nag的帖子

在开发Android应用程序时如何管理多个环境?

我们正在构建一个连接到云端的Android应用.我们有API的测试URL和生产URL.我们将应用程序连接到我们的本地开发机器,以便在开发时与数据库通信,但每当我们为Play商店生成APk时,我们都会发现自己正在修改生产URL的全局API URL.

有没有更好的方法来管理Android的环境?我们还可以有两个版本的应用程序(开发版本)和Play商店版本吗?我无法拥有两个版本,因为这两个应用程序具有相同的签名.我们如何最好地管理这个?

android

30
推荐指数
3
解决办法
2万
查看次数

如何使用Node.js将base64编码图像(字符串)直接上传到Google Cloud Storage存储桶?

目前,我正在使用@ google-cloud/storage NPM软件包将文件直接上传到Google云端存储分区.这需要一些技巧,因为我只有图像的base64编码字符串.我必须:

  • 解码字符串
  • 将其另存为文件
  • 将文件路径发送到以下脚本以上传到Google云端存储
  • 删除本地文件

我想避免将文件存储在文件系统中,因为我使用的是Google App Engine,如果删除操作因任何原因无效,我不想重载文件系统/留下垃圾文件.这就是我的上传脚本现在的样子:

// Convert the base64 string back to an image to upload into the Google Cloud Storage bucket
var base64Img = require('base64-img');
var filePath = base64Img.imgSync(req.body.base64Image, 'user-uploads', 'image-name');

// Instantiate the GCP Storage instance
var gcs = require('@google-cloud/storage')(),
    bucket = gcs.bucket('google-cloud-storage-bucket-name');

// Upload the image to the bucket
bucket.upload(__dirname.slice(0, -15) + filePath, {
    destination: 'profile-images/576dba00c1346abe12fb502a-original.jpg',
    public: true,
    validation: 'md5'
}, function(error, file) {

    if (error) {
        sails.log.error(error);
    }

    return res.ok('Image …
Run Code Online (Sandbox Code Playgroud)

javascript node.js google-cloud-storage google-cloud-platform

24
推荐指数
5
解决办法
1万
查看次数

使用Node 8.9.4 LTS安装Sails.js依赖项时,NPM"ENOENT:没有此类文件或目录错误"

我最近升级了我的计算机并使用它升级到最新的Node和NPM的LTS版本:

  • Node.js 8.9.4
  • NPM 5.6.0

我有一个Sails.js 0.12.14应用程序,我正在尝试安装NPM依赖项,npm install但当我这样做时,我收到以下错误:

?  web-service git:(feature/auth) ? npm install
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/package.json'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/README.md'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/LICENSE'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/index.js'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/pako-660dbb41/CHANGELOG.md'
WARN tar ENOENT: no such file or directory, open '/Users/Nag/Code/project/web-service/node_modules/.staging/lodash-6e6c9f2a/fp/camelCase.js'
WARN tar ENOENT: no …
Run Code Online (Sandbox Code Playgroud)

node.js npm sails.js

23
推荐指数
9
解决办法
1万
查看次数

如何在Ember CLI应用程序中访问Ember全局"App"变量?

我正在使用Ember CLI创建Ember应用程序.我有一个视图调用我创建的组件.我试图访问全局App变量来创建我的组件并将其插入我的布局.

错误:未捕获的ReferenceError:未定义App

我该如何解决?

app.js

import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';

Ember.MODEL_FACTORY_INJECTIONS = true;

var App = Ember.Application.extend({
  modulePrefix: 'client-web', // TODO: loaded via config
  Resolver: Resolver
});

loadInitializers(App, 'client-web');

export default App;
Run Code Online (Sandbox Code Playgroud)

item-table.js(这是一个视图)

import Ember from 'ember';

export default Ember.View.extend({
    templateName: 'item-table',

    didInsertElement: function() {
        // All my other code here

        App.FreestyleChartComponent.create().appendTo($('#wp-chart td')); // This throws an error.
    }
});
Run Code Online (Sandbox Code Playgroud)

应用/组件/自由式-chart.js之

import Ember from 'ember';

export default Ember.Component.extend({
    templateName: 'components/freestyle-chart',

    didInsertElement: …
Run Code Online (Sandbox Code Playgroud)

javascript ember.js ember-cli

13
推荐指数
1
解决办法
8448
查看次数

运行'ember server'导致构建失败并出现EEXIST错误?

ember server今天运行时遇到此随机构建错误.在你问之前,这是我的Ember CLI,Node和NPM版本:

version: 0.1.15
node: 0.10.33
npm: 2.1.8
Run Code Online (Sandbox Code Playgroud)

我使用创建了一个新的Ember项目ember new [app name].一切正常.然后我跑了ember server,打开页面,http://localhost:4200/页面显示.然后我创建了一个名为index using的新路由ember generate route index.与往常一样,Ember CLI创建了路由,Handlebars文件和匹配的test.js. 在此之后,运行的Ember服务器进程立即引发了构建错误:

file changed templates/index.hbs
EEXIST, file already exists '/Users/Nagarjun/Code/RideBazaar/web-client/tmp/class-tmp_cache_dir-hBTLOW8N.tmp'
Error: EEXIST, file already exists '/Users/Nagarjun/Code/RideBazaar/web-client/tmp/class-tmp_cache_dir-hBTLOW8N.tmp'
    at Object.fs.symlinkSync (fs.js:741:18)
    at symlink (/Users/Nagarjun/Code/RideBazaar/web-client/node_modules/ember-cli/node_modules/symlink-or-copy/index.js:82:14)
    at Function.symlinkOrCopySync [as sync] (/Users/Nagarjun/Code/RideBazaar/web-client/node_modules/ember-cli/node_modules/symlink-or-copy/index.js:58:5)
    at /Users/Nagarjun/Code/RideBazaar/web-client/node_modules/ember-cli/node_modules/broccoli-sourcemap-concat/node_modules/broccoli-caching-writer/index.js:103:21
    at lib$rsvp$$internal$$tryCatch (/Users/Nagarjun/Code/RideBazaar/web-client/node_modules/ember-cli/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:489:16)
    at lib$rsvp$$internal$$invokeCallback (/Users/Nagarjun/Code/RideBazaar/web-client/node_modules/ember-cli/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:501:17)
    at lib$rsvp$$internal$$publish (/Users/Nagarjun/Code/RideBazaar/web-client/node_modules/ember-cli/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:472:11)
    at Object.lib$rsvp$asap$$flush [as _onImmediate] (/Users/Nagarjun/Code/RideBazaar/web-client/node_modules/ember-cli/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:1290:9)
    at processImmediate [as _immediateCallback] (timers.js:345:15)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我点击时ctrl c,停止服务器并重新启动它,构建成功.但是,当我再次对文件进行更改时,我得到了同样的错误.有线索吗?

javascript ember.js

8
推荐指数
1
解决办法
1485
查看次数

使用Vuex进行API调用的正确方法是什么?

我有一个Vue Webpack应用程序与Vuex(我是两个新人,来自Ember世界).我目前已经设置使用vue-resource和两个文件,如下所示:

/src/store/api.js

import Vue from 'vue';
import { store } from './store';

export default {
  get(url, request) {
    return Vue.http
      .get(store.state.apiBaseUrl + url, request)
      .then(response => Promise.resolve(response.body))
      .catch(error => Promise.reject(error));
  },
  post(url, request) {
    return Vue.http
      .post(store.state.apiBaseUrl + url, request)
      .then(response => Promise.resolve(response))
      .catch(error => Promise.reject(error));
  },
  // Other HTTP methods removed for simplicity
};
Run Code Online (Sandbox Code Playgroud)

然后我将上面的api.js文件导入到我的/src/store/store.js文件中,如下所示:

import Vue from 'vue';
import Vuex from 'vuex';
import Api from './api';

Vue.use(Vuex);

// eslint-disable-next-line
export const store = new Vuex.Store({ …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-resource vuex

8
推荐指数
1
解决办法
5470
查看次数

在 moment.js 中格式化日期时如何保留时区?

我有一个像这样的日期2015-10-24T17:12-05:00,我正在使用 moment.js 将其格式化,如下所示:

moment('2015-10-24T17:12-05:00').format('h:mm A');
Run Code Online (Sandbox Code Playgroud)

moment.js 似乎没有显示字符串中指定的时区的时间,而是将其转换为我计算机的时区。格式化时如何保留时区?

javascript momentjs

7
推荐指数
1
解决办法
2813
查看次数

使用Vue.js进行Firebase电话号码身份验证不起作用

我正在基于Webpack模板构建一个新的Vue.js应用程序。我有一个/ sign-in路由,可加载名为SignIn的组件。我正在尝试使用Firebase SDK 使用Firebase电话号码身份验证来验证我的用户。

我已经安装了Firebase,npm install firebase并在main.js文件中将其初始化为:

/src/main.js

import firebase from 'firebase';

import Vue from 'vue';
import App from './App';
import router from './router';

Vue.config.productionTip = false;

// Initialize Firebase
const config = {
  apiKey: 'MY_API_KEY',
  authDomain: 'MY_PROJECT.firebaseapp.com',
  databaseURL: 'https://MY_PROJECT.firebaseio.com',
  projectId: 'MY_PROJECT_ID',
  storageBucket: 'MY_PROJECT.appspot.com',
  messagingSenderId: 'MY_SENDER_ID',
};

firebase.initializeApp(config);

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App },
});
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,为安全起见,我的凭据已被编辑。

当用户登录/登录时,这是他们看到的组件:

/src/components/pages/SignIn.vue

<template>
  <div>
    <!-- Number Input Form --> …
Run Code Online (Sandbox Code Playgroud)

javascript firebase vue.js firebase-authentication

7
推荐指数
1
解决办法
1334
查看次数

GitHub“通过电子邮件回复”是如何工作的?

我注意到许多网站(例如 Facebook 和 GitHub)允许您回复电子邮件通知,然后使用唯一的回复地址将回复发送回应用程序。这在后端如何工作?我搜索了很多,但只发现人们使用唯一的回复地址。这是可以理解的,但是他们用什么来接收这些电子邮件呢?这些公司是否设立电子邮件服务器?我正在尝试使用 PHP 构建它。

php email

6
推荐指数
2
解决办法
2881
查看次数

我应该如何使用 Google Cloud KMS 存储由另一个应用程序生成的访问令牌?

我正在构建一个 Node.js 应用程序,它从我需要访问的另一个应用程序接收长期访问令牌。我不想将这些访问令牌直接存储在数据库中,因为任何有权访问这些令牌的人基本上都可以用它做任何他们想做的事情。

我是 Cloud KMS 和此类系统的新手,但最近几个小时都在学习它。这似乎是解决我的问题的理想解决方案,但我不完全确定应该遵循什么策略来存储这些访问令牌:

  1. 我应该存储在云KMS的加密密钥,并使用该加密密钥与NPM包像这样一个存储访问令牌在我的数据库?
  2. 我应该将访问令牌直接存储在 KMS 中吗?我的假设是我会有一个密钥库,并且每 14 天轮换一次密钥。每当我收到访问令牌时,我都会对其进行加密并将其存储在 KMS 中。我只将密文存储在我的数据库中。当我需要从 KMS 访问访问令牌时,我使用密文对其进行解密。

以上哪项是使用 KMS 的正确方法?如果是选项 2,我还有其他问题:

  • 我可以使用单个密钥加密大量访问令牌,还是需要为每个访问令牌创建一个新密钥?
  • 如果我需要修改在 KMS 加密的访问令牌,我可以简单地修改它还是需要销毁旧版本并再次加密?

谢谢你的帮助!

security encryption google-cloud-platform google-cloud-kms google-secret-manager

5
推荐指数
1
解决办法
1000
查看次数