Files
shiny/reference/shinyServer.html
2022-06-14 15:38:12 +00:00

148 lines
11 KiB
HTML

<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Define Server Functionality — shinyServer • shiny</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Define Server Functionality — shinyServer"><meta property="og:description" content="
Defines the server-side logic of the Shiny application. This generally
involves creating functions that map user inputs to various kinds of output.
In older versions of Shiny, it was necessary to call shinyServer() in
the server.R file, but this is no longer required as of Shiny 0.10.
Now the server.R file may simply return the appropriate server
function (as the last expression in the code), without calling
shinyServer().
Call shinyServer from your application's server.R
file, passing in a &quot;server function&quot; that provides the server-side logic of
your application.
The server function will be called when each client (web browser) first loads
the Shiny application's page. It must take an input and an
output parameter. Any return value will be ignored. It also takes an
optional session parameter, which is used when greater control is
needed.
See the tutorial for more
on how to write a server function."><meta property="og:image" content="/logo.png"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
<div class="container template-reference-topic">
<header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">shiny</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="">1.7.1.9003</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav"><li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">Changelog</a>
</li>
</ul><ul class="nav navbar-nav navbar-right"><li>
<a href="https://github.com/rstudio/shiny/" class="external-link">
<span class="fab fa-github fa-lg"></span>
</a>
</li>
</ul></div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header><div class="row">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Define Server Functionality</h1>
<small class="dont-index">Source: <a href="https://github.com/rstudio/shiny/blob/HEAD/R/server.R" class="external-link"><code>R/server.R</code></a></small>
<div class="hidden name"><code>shinyServer.Rd</code></div>
</div>
<div class="ref-description">
<p><a href="https://lifecycle.r-lib.org/articles/stages.html#superseded" class="external-link"><img src="figures/lifecycle-superseded.svg" alt="[Superseded]"></a></p>
<p>Defines the server-side logic of the Shiny application. This generally
involves creating functions that map user inputs to various kinds of output.
In older versions of Shiny, it was necessary to call <code>shinyServer()</code> in
the <code>server.R</code> file, but this is no longer required as of Shiny 0.10.
Now the <code>server.R</code> file may simply return the appropriate server
function (as the last expression in the code), without calling
<code>shinyServer()</code>.</p>
<p>Call <code>shinyServer</code> from your application's <code>server.R</code>
file, passing in a "server function" that provides the server-side logic of
your application.</p>
<p>The server function will be called when each client (web browser) first loads
the Shiny application's page. It must take an <code>input</code> and an
<code>output</code> parameter. Any return value will be ignored. It also takes an
optional <code>session</code> parameter, which is used when greater control is
needed.</p>
<p>See the <a href="https://rstudio.github.io/shiny/tutorial/" class="external-link">tutorial</a> for more
on how to write a server function.</p>
</div>
<div id="ref-usage">
<div class="sourceCode"><pre class="sourceCode r"><code><span class="fu">shinyServer</span><span class="op">(</span><span class="va">func</span><span class="op">)</span></code></pre></div>
</div>
<div id="arguments">
<h2>Arguments</h2>
<dl><dt>func</dt>
<dd><p>The server function for this application. See the details section
for more information.</p></dd>
</dl></div>
<div id="ref-examples">
<h2>Examples</h2>
<div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span class="kw">if</span> <span class="op">(</span><span class="cn">FALSE</span><span class="op">)</span> <span class="op">{</span></span>
<span class="r-in"><span class="co"># A very simple Shiny app that takes a message from the user</span></span>
<span class="r-in"><span class="co"># and outputs an uppercase version of it.</span></span>
<span class="r-in"><span class="fu">shinyServer</span><span class="op">(</span><span class="kw">function</span><span class="op">(</span><span class="va">input</span>, <span class="va">output</span>, <span class="va">session</span><span class="op">)</span> <span class="op">{</span></span>
<span class="r-in"> <span class="va">output</span><span class="op">$</span><span class="va">uppercase</span> <span class="op">&lt;-</span> <span class="fu"><a href="renderPrint.html">renderText</a></span><span class="op">(</span><span class="op">{</span></span>
<span class="r-in"> <span class="fu"><a href="https://rdrr.io/r/base/chartr.html" class="external-link">toupper</a></span><span class="op">(</span><span class="va">input</span><span class="op">$</span><span class="va">message</span><span class="op">)</span></span>
<span class="r-in"> <span class="op">}</span><span class="op">)</span></span>
<span class="r-in"><span class="op">}</span><span class="op">)</span></span>
<span class="r-in"></span>
<span class="r-in"></span>
<span class="r-in"><span class="co"># It is also possible for a server.R file to simply return the function,</span></span>
<span class="r-in"><span class="co"># without calling shinyServer().</span></span>
<span class="r-in"><span class="co"># For example, the server.R file could contain just the following:</span></span>
<span class="r-in"><span class="kw">function</span><span class="op">(</span><span class="va">input</span>, <span class="va">output</span>, <span class="va">session</span><span class="op">)</span> <span class="op">{</span></span>
<span class="r-in"> <span class="va">output</span><span class="op">$</span><span class="va">uppercase</span> <span class="op">&lt;-</span> <span class="fu"><a href="renderPrint.html">renderText</a></span><span class="op">(</span><span class="op">{</span></span>
<span class="r-in"> <span class="fu"><a href="https://rdrr.io/r/base/chartr.html" class="external-link">toupper</a></span><span class="op">(</span><span class="va">input</span><span class="op">$</span><span class="va">message</span><span class="op">)</span></span>
<span class="r-in"> <span class="op">}</span><span class="op">)</span></span>
<span class="r-in"><span class="op">}</span></span>
<span class="r-in"><span class="op">}</span></span>
</code></pre></div>
</div>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
</nav></div>
</div>
<footer><div class="copyright">
<p></p><p>Developed by Winston Chang, Joe Cheng, JJ Allaire, Carson Sievert, Barret Schloerke, Yihui Xie, Jeff Allen, Jonathan McPherson, Alan Dipert, Barbara Borges.</p>
</div>
<div class="pkgdown">
<p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.4.</p>
</div>
</footer></div>
</body></html>