npm install
npm run build:example
npm run build:browser
render() {
const { res } = this.state;
const shouldFlimDisplayShown = !!res;
return (
<div>
<form onSubmit={this.handleSubmit}>
<label htmlFor="title">Enter title</label>
<input id="title" name="title" type="text" />
<button>Send data!</button>
</form>
{shouldFlimDisplayShown && <FilmDisplay filmName={res}/>}
</div>
);
}
import React from 'react';
class FilmDisplay extends React.Component {
constructor() {
super();
this.state = {
filmData: null
};
}
componentDidMount() {
this.fetchMovie();
}
componentDidUpdate(prevProps) {
if (prevProps.filmData !== this.props.filmData) {
this.fetchMovie();
}
}
fetchMovie() {
const { filmName } = this.props;
const URL = "http://www.omdbapi.com/?t=" + filmName + "&apikey=6540f2ec&";
fetch(URL).then(res => res.json()).then(json => {
this.setState({ filmData: json });
});
}
render() {
const { filmData } = this.state;
if (!filmData) return <div>Loading</div>;
return <div>{JSON.stringify(filmData)}</div>;
}
}
export default FilmDisplay;
function SetUserManager(config) {
this.client = new ClientUser();
this.clientManager = new ClientManager({
user: this.client
});
this.options = {
name: config.name,
key: config.key
};
this.cookies = [];
client.login(options);
this.viewer();
}
SetUserMagager.prototype.viewer = function() {
this.client.on('login', () => {
this.client.setLogin();
});
this.client.on('msg', (session) => {
serveSession(session);
});
this.clientManager.on('user', (data) => {
serveNewUser(data);
});
}
class SetUserMagager {
constructor(config) {
this.client = new ClientUser();
this.clientManager = new ClientManager({
user: this.client
});
this.options = {
name: config.name,
key: config.key
};
this.cookies = [];
client.login(options);
this.viewer();
}
viewer() {
this.client.on('login', () => {
this.client.setLogin();
});
this.client.on('msg', (session) => {
serveSession(session);
});
this.clientManager.on('user', (data) => {
serveNewUser(data);
});
}
}
module.exports.person = async () => await sqlQuery();
module.exports.person = async () => [await sqlQuery1(), await sqlQuery2()];
module.exports.person = async id => {
const user = await getUser(id);
const permissions = await getPermissions(user.role);
return {
user,
permissions,
};
}
module.exports.person = args => sqlQuery(args);
const user = async person(id);
webpack -p
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
}),
new webpack.optimize.UglifyJsPlugin({
// options
}),
plugins: [
new webpack.EnvironmentPlugin(['NODE_ENV']),
new webpack.optimize.UglifyJsPlugin({
// options
}),
],
new webpack.EnvironmentPlugin(['NODE_ENV']),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
}),
componentDidMount() {
this.initSocket();
}
initSocket() {
// set user
socket.on('init', data => {
this.setState({
player: data.nickname,
}, () => {
alert(this.state.player);
});
});
}
render() {
const { user } = this.state;
if (!user) return <Loader />
return (
...
);
}
function foo(x) { return x + 1 }
foo(2)
function foo(x) { return x + 1 }
undefined // объявление функции ничего не возвращает, хотя Function Declaration еще как!
// консоль же интерпретирует это выражение как Function Expression
foo(2)
3 // вызов a возвращает значение 3
(function bar(x) { return x * x }) // объявление функции, обернутое в скобки,
(function bar(x) { return x * x }) // интерпретируется как Function Declaration
(x) => x + 1
(x) => x + 1 // объявление arrow function возвращает саму функцию
router.get('/', routeCache.cacheSeconds(20), async (req, res) => {
const posts = await models.Post.getPostsList({ limit: 10 });
res.json(posts);
});
router.get('/', async (req, res) => {
const posts = await models.Post.getPostsList({ limit: 10 });
res.render('index', { posts_list: posts });
});
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/example.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
location /second-project-path {
proxy_pass http://127.0.0.1:3001;
}
}
server {
listen 80;
server_name first-project.com;
access_log /var/log/nginx/first-project.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
server {
listen 80;
server_name second-project.com;
access_log /var/log/nginx/second-project.com;
location / {
proxy_pass http://127.0.0.1:3001;
}
}
}
mkdir workplace
cd workplace
git clone [path to project]
cd [project directory name]
npm install
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/example.com;
location / {
proxy_pass "http://127.0.0.1:3000";
}
}
npm start