在我的应用程序中,我使用谷歌地图 api 密钥与谷歌通信。我在 gradle 调试/发布配置中定义了这个 MAP_KEY,如下所示:
debug {
buildConfigField 'String', 'BASE_URL', '"https://myweb.com"'
buildConfigField 'String', 'SOCKET_URL', '"https://socket.myweb.com"'
buildConfigField 'String', 'MAP_KEY', '"azaS****Ds"'
}
Run Code Online (Sandbox Code Playgroud)
但是如果有人从谷歌游戏商店下载我的应用程序并反编译它,他将获得我的 API 令牌。这是真的?如果是,在我的代码中隐藏 api 密钥的方法是什么?
当我启动 node.js 应用程序时,出现此错误:
SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306
Run Code Online (Sandbox Code Playgroud)
我在做什么:
- create a user:
CREATE USER 'main'@'localhost' IDENTIFIED BY 'myPass';
- give this user all privileges
GRANT ALL PRIVILEGES ON *.* TO 'main'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
然后我尝试通过我的生产代码进行连接,它给了我一个错误:connect ECONNREFUSED 127.0.0.1:3306。
但是在我的本地主机环境中,它连接良好。当我尝试在 VPS 上使用命令行连接到数据库时,它也可以工作:
mysql -umain -p
我无法与代码连接。但是在我的本地主机上它连接。仔细检查了我的登录信息,并在 .env 中传递给 DB 用户。
我有一个navigation标准项目,例如:联系方式,服务,价格等...我将其呈现为:
const menuItemList = menuItems.map((item, index) => {
return (
<li key={index}>
<NavLink to={item.url}>{item.title}</NavLink>
</li>
);
});
Run Code Online (Sandbox Code Playgroud)
工作正常。但是现在我需要翻译此导航,并react-intl为此使用库。因此,对于react-intl 文档,我必须这样使用FormattedMessage:
<p>
<FormattedMessage id="mainText"/>
</p>
Run Code Online (Sandbox Code Playgroud)
有用。但是如何将其用于列表呈现?我认为这可以解决此问题,但事实并非如此。
const menuItemsList = menuItems.map((item, index) => {
return (
<li key={index}>
<NavLink to={item.url}>
<FormattedMessage id="mainText" values={item.title}/>
</NavLink>
</li>
);
});
Run Code Online (Sandbox Code Playgroud)
伙计们,请帮忙。如何React使用FormattedMessagefrom中的项目渲染列表react-intl?
我正在Sequelize为我的node.js应用程序使用。我使用findOrCreate()方法创建一个新用户(如果不存在)。根据docs, findOrCreate返回一个数组,其中包含找到或创建的对象,以及一个布尔值,如果创建了新对象,则为true,否则为false。
sequelize建议使用spread()将数组分为2部分并将其作为参数传递给回调函数的方法。第一部分是用户对象,第二部分是布尔值(如果添加了新行)。
我的工作async/await风格。我的代码是:
app.post('/signup', async (req, res) => {
try {
let insertedUser = await User.findOrCreate({
where: { email: req.body.userEmail },
defaults: {
pass: req.body.userPass
}
})
insertedUser.spread((user, created) => {
if(created) {
res.json(user.email)
}
})
} catch (err) {
console.log(`ERROR! => ${err.name}: ${err.message}`)
res.status(500).send(err.message)
}
}
})
Run Code Online (Sandbox Code Playgroud)
发布请求后,我得到一个错误:
ERROR! => TypeError: insertedUser.spread is not a function
Run Code Online (Sandbox Code Playgroud)
为什么会这样,医生说它必须是一个函数?
我想req.url在 Express 中向 a 添加一个字符串。字符串如下所示:
?id=someID&product=bag
Run Code Online (Sandbox Code Playgroud)
我无权访问客户端 html 或服务器。我从客户那里得到的只是一个GET没有任何参数的请求。所以我尝试制作中间件,它会添加查询字符串,然后我会像往常一样解析它。这个想法是:
// Middleware
const addQuery = (req, res, next) => {
req.url = req.url + `?id=someID&product=bag`;
next();
}
Run Code Online (Sandbox Code Playgroud)
然后在请求处理程序中:
router.get('/', addQuery, (req, res) => {
console.log(req.query.id);
console.log(req.query.product);
});
Run Code Online (Sandbox Code Playgroud)
但它给了我undefined。我不能使用任何客户端js,也不能使用服务器端编码。不是我origin向我发送这个请求。
那么如何添加查询字符串来表达请求然后成功解析呢?
我想显示导航栏只为这个网址:/contact,/services。而且我不想显示的Navbar /signin。目前,这是我所拥有的:
import React, { Component } from 'react';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import PublicLayout from './components/layouts/PublicLayout';
import SigninLayout from './components/layouts/SigninLayout';
import Main from './components/pages/Main';
import Services from './components/pages/Services';
import Contact from './components/pages/Contact';
class App extends Component {
render() {
return (
<BrowserRouter>
<div className="App">
<Switch>
<PublicLayout>
<Route exact path='/' component={Main} />
<Route exact path='/services' component={Services} />
<Route exact path='/contact' component={Contact} />
</PublicLayout>
<SigninLayout>
<Route exact path='/signin' component={Signin} />
</SigninLayout>
</Switch> …Run Code Online (Sandbox Code Playgroud) 目前我正在使用jwtnode.js 应用程序。我使用如下所示的jwt.sign()方法:
jwt.sign({
accountID: user.accountID,
email: user.email,
}, process.env.SECRET_KEY, (err, token) => {
if (err) throw err
res.json({token})
})
Run Code Online (Sandbox Code Playgroud)
我不想使用回调。我想将其转换为async/await. 据我所知,我必须new Promise用resole({})和返回reject(err)。但我不知道如何使用 sign() 方法中的 promise。任何帮助表示赞赏。谢谢!
我正在尝试async/await使用sequelize. 我的代码看起来像:
更新:
router.get('/', errorHandler(async (req, res, next) => {
let domainsDB = await Domain.findAll({
where: { accID: accID },
attributes: [`adID`, `domain`, `status`]
})
}
Run Code Online (Sandbox Code Playgroud)
当console.log(domainsDB)我看到这个:
[
domains {
dataValues: [Object],
_previousDataValues: [Object],
_changed: {},
_modelOptions: [Object],
_options: [Object],
__eagerlyLoadedAssociations: [],
isNewRecord: false },
domains {
...
...
...
]
Run Code Online (Sandbox Code Playgroud)
该文件说,它是在返回数组。但是控制台日志显示这是一个对象。这个对象中的数据dataValues是正确的。有我的域。但我希望得到一个可以使用的数组。
如何获得一个数组作为回报async/await?谢谢你的帮助。
我需要像本例中那样移动菜单项下划线。
使用 jQuery,我只需获取菜单项的左侧位置和宽度即可。然后stop.animation悬停执行。
我正在尝试用 制作这样的动画React。但我不知道该怎么做。经过谷歌研究后,我发现了流行的动画反应运动库。但我找不到如何在悬停时触发动画的方法。
在我的react应用程序中,我有一些页面:
我需要跟踪用户使用Google Analytics(分析)的活动。我用google搜索了react-ga,一切都很好。但是,有了这个库,我必须在使用的每条路线上初始化我的GA。例如:
路线“ /”-主页:
class Main extends Component {
componentDidMount() {
initGA();
}
render() {
return (
<div>
<Component1 />
<Component2 />
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
我的initGA()样子是:
import ReactGA from 'react-ga';
export const initGA = () => {
ReactGA.initialize('UA-00000000-1');
ReactGA.pageview(window.location.pathname + window.location.search);
console.log(window.location.pathname + window.location.search);
}
Run Code Online (Sandbox Code Playgroud)
我的App class样子是:
class App extends Component {
render() {
return (
<BrowserRouter>
<div className="App">
<Switch>
<Route exact path="/" component={Main} /> …Run Code Online (Sandbox Code Playgroud) 我正在使用express和node.js应用程序。我有一个普通路由器,它:
myIDDBmyID存在它会尝试addVisit()addVisit()到该表中。路由器代码如下:
router.get('/:myId', errorHandler(async (req, res, next) => {
console.log(req.params.myId + ' This is myID Params!');
const Domain = DomainModel(db, Sequelize);
const Click = ClickModel(db, `${req.params.myId}_clicks`, Sequelize);
try {
let row = await Domain.findOne({ where: { myId: req.params.myId } });
console.log(row.myId + ' This is myID from DB');
if (row.myId) {
try {
await addVisit(Click, req);
res.sendStatus(200);
} catch (err) {
console.log(`This error fires!`);
if …Run Code Online (Sandbox Code Playgroud) javascript ×10
node.js ×4
reactjs ×4
sequelize.js ×4
async-await ×3
express ×2
android ×1
animation ×1
api-key ×1
es6-promise ×1
mysql ×1
react-ga ×1
react-intl ×1
react-motion ×1
react-router ×1